カスタム検索タイプでの強調表示の構成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

カスタム検索タイプの強調表示は、特定の要件を満たすように構成できます。

強調表示は、次の2つの方法で構成できます。

  • presetOverrideを使用してLINQクエリでパラメーターを渡す

  • プリセットを定義し、LINQクエリで参照する

presetOverrideを使用してLINQクエリでパラメーターを渡す

LINQクエリでパラメーターを渡して強調表示を構成するには:

  • presetOverrideを使用して、LINQクエリでパラメーターを渡します。

    var result = context.GetQueryable<SimpleHighlightResultItem>()
            .Where(it => it.Title == "Sitecore" && it.Text == "customer experience")
            .WithHighlights(hl => hl.HighlightOn(i => i.HighlightsInText),
                presetOverride: p =>
                {
                    p.PreTag = "<br>";
                    p.PostTag = "</br>";
                })
            .ToArray();

    前の例では、強調表示された用語をラップするHTMLタグを変更し、次のSolrクエリを生成します。 q=(title_t:("Sitecore") AND text:("customer experience")) ... &hl=true&hl.fl=text&hl.simple.pre=<br>&hl.simple.post=</br>

    HighlightsInTextプロパティには、次のセグメントが含まれています。

    " complexity that has previously held marketers back, the latest version of <br>Sitecore</br> makes <br>customer</br> <br>experience</br>"

プリセットを定義し、LINQクエリで参照する

また、設定プリセットを使用してハイライトを設定することもできます。

プリセットは、定義されたハイライトパラメータのセットであり、一意の名前が関連付けられています。複数のハイライト パラメーターを使用してプリセットを定義し、ソリューション全体で再利用できます。

LINQクエリでプリセットを定義して参照するには、次のようにします。

  1. カスタムSitecore設定ファイルのsitecore > contentSearch > indexConfigurations > defaultSolrIndexConfiguration > highlightOptions > presetStore > presetsノードでプリセットを定義します。

    <defaultSolrIndexConfiguration>
          <highlightOptions>
            <presetStore>
              <presets>
                <preset id="sample" type="Sitecore.ContentSearch.Linq.Highlighting.ConfigurationBasedHighlightsPresetStore+HighlightPreset, Sitecore.ContentSearch.Linq">
                  <param desc="name">$(id)</param>
                  <param desc="parameters" type="Sitecore.ContentSearch.Linq.Solr.Highlighting.SolrHighlightParameters, Sitecore.ContentSearch.Linq.Solr">
                    <fragSize>50</fragSize>
                    <maxSnippetsNumber18791275782<11879127578/maxSnippetsNumber>
                    <requireFieldMatch>true</requireFieldMatch>
                    <preTag>&lt;span&gt;</preTag>
                    <postTag>&lt;/span&gt;</postTag>
                  </param>
                </preset>
              </presets>
            </presetStore>
          </highlightOptions>
    </defaultSolrIndexConfiguration>

    前の例では、sampleという名前のプリセットを定義し、Solr固有のパラメーターを追加しました。

  2. LINQクエリでプリセットを参照します。

    var result = context.GetQueryable<SimpleHighlightResultItem>()
            .Where(it => it.Title == "Sitecore" && it.Text == "customer experience")
            .WithHighlights(hl => hl.HighlightOn(i => i.HighlightsInText),
                preset: "sample"
            )
            .ToArray();

    上記のLINQクエリでは、次のSolrクエリが生成されます。

    q=(title_t:("Sitecore") AND text:("customer experience")) ... &hl=true&hl.fl=text&hl.snippets=1&hl.fragsize=50&hl.requireFieldMatch=true&hl.simple.pre=<span>&hl.simple.post=</span>

    HighlightsInTextプロパティには、次のセグメントが含まれています。

    " latest version of Sitecore makes <span>customer</span> <span>experience</span>"
この記事を改善するための提案がある場合は、 お知らせください!