検索結果に基づいてアイテムのURLを取得する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
検索結果を使用して、アイテムのURLを生成できます。これにより、データベース呼び出しが削減され、サイト訪問者を関連するコンテンツに誘導するリンクを使用して各検索結果をレンダリングできます。このトピックでは、アイテムのURLを取得する3つの異なる方法を示します。
UrlLink計算インデックス フィールドを有効にする
UrlLink計算インデックス フィールドを有効にする
計算されたインデックス フィールドからアイテムのURLを取得するには:
-
UrlLink計算インデックス フィールドを有効にし、それをurllinkインデックス フィールドに格納するには、構成パッチ ファイルを作成し、App_Config\Includeフォルダーにパッチを適用します。
インデックスを再構築すると、インデックス付きドキュメントには、このアイテムへのリンクを格納する追加のurllink_sフィールドがあります。
-
検索結果のURLにアクセスするには、プロパティにIndexField("urllink") 属性がある場合、またはプロパティの名前がフィールド値の名前 (つまりUrlLink) と一致する場合に限り、カスタムSearchResultItemクラスを使用してURLにアクセスします。
-
インデックス付き値にアクセスするには、CustomSearchResultItemクラスのUrlプロパティを使用します。
メモまた、Sitecore.ContentSearch.SearchTypes.SearchResultItemのUrlプロパティを通じてこのフィールドを使用して、インデックス付き値にアクセスすることもできます。
カスタム計算インデックス フィールドを実装する
カスタム計算インデックス フィールドを実装する
リンクの生成方法をより詳細に制御する必要がある場合は、カスタム計算インデックスフィールド を作成できます。これを行うには、次の手順を実行します。
-
CustomUrlLinkなどのカスタムクラスを作成し、インデックス設定に登録します。
インデックスを再構築すると、インデックス付きドキュメントには、このアイテムへのリンクを格納する追加のcustomurllink_sフィールドが追加されます。
-
IndexField("customurllink") 属性を持つプロパティ、またはフィールド値の名前と一致する名前 (CustomUrlLink) を持つCustomSearchResultItemクラスを作成して、アイテムのURLにアクセスします。
-
これで、CustomSearchResultItemクラスのUrlプロパティを使用して、インデックス付き値にアクセスできるようになりました。
実際のアイテムに基づいてアイテムのURLを作成する
実際のアイテムに基づいてアイテムのURLを作成する
検索結果でアイテムを取得した場合は、Sitecore.Links.LinkManager.GetItemUrlを使用してアイテムのURLを取得できます。
URLを作成する前にアイテムを取得するには:
-
アイテムを取得するには、元のGetItemSearchResultItem方法を使用します。
または、設定をオーバーライドしたり、SearchResultItemクラスに何かを追加したりする場合は、次のように、これらの要件を満たすカスタムSearchResultItemクラスを作成できます。
次に、CustomSearchResultItemクラスのGetItemメソッドを使用してアイテムを取得します。