Solrを使用して検索結果を強調表示する

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

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

メモ

このトピックはSitecore 9.0以降で有効です。

Solrにはハイライト機能があります。つまり、Solrはクエリ応答でクエリに一致するドキュメントの一部を返します。Solrでは、これらのフラグメントは、highlightingセクションと呼ばれる応答の特別なセクションに組み込まれます。Solrには、これらのフラグメント (またはスニペット) の表示方法を決定するために使用する書式設定の手掛かりも含まれています

詳細については、Solrの資料を参照してください

Solrの構成

Solrで強調表示を有効にするための構成は必要ありません。

この例では、SitecoreコードでSolrの強調表示機能を使用する方法を示します。

protected void OnClick(object sender, EventArgs e)
  {
    var index = ContentSearchManager.GetIndex("sitecore_master_index");
    var highlightField = "_name";
    using (var context = index.CreateSearchContext())
    {
      var results = context.Query<SearchResultItem>(string.Format("_name:{0}", this.txtName.Text), new QueryOptions()
    {
      Highlight = new HighlightingParameters
      {
        Fields = new[]
        {
          highlightField
        },
          BeforeTerm = "<span class='highlight'>",
          AfterTerm = "</span>"
    }
    });
      if (results != null)
      {
        foreach (var result in results)
        {
          result[string.Format("highlight{0}", highlightField)] = string.Join(", ", results.Highlights[result["_uniqueid"].ToString()].Snippets[highlightField].ToArray());
        }
      }
      this.rptResults.DataSource = results;
      this.rptResults.DataBind();
    }
  }

おすすめの方法

強調表示に使用するパラメーターを指定することをお勧めします。結果を得るには、h1パラメータとh1.flパラメータを設定するだけです。

これらは最も一般的に使用されるパラメータです。

パラメーター

デフォルト

形容

HLの

このパラメータを使用して、ハイライトを有効または無効にします。

hl.メソッド

翻訳元

使用する強調表示の実装。指定できる値は、unifiedoriginalfastVectorpostingsです。

HL.FLの

(df=)

強調表示するフィールドの一覧を指定します。これは、Solrが強調表示されたスニペットを生成するフィールドのコンマ区切りまたはスペース区切りのリストを受け入れます。ワイルドカード '*' (アスタリスク) を使用して、'text_*' などのフィールド グロブを一致させたり、強調表示が可能なすべてのフィールドで強調表示したりするために '*' を使用できます。'*' を使用する場合は、追加を検討してください。 hl.requireFieldMatch.

この記事を改善するための提案がある場合は、 お知らせください!