2016-05-13 6 views
1

以下のコードを使用して検索結果からハイライトを取り戻そうとしています。あらゆる種類のことを試みても、結果のハイライトコレクションは常に空です。ElasticSearchで動作するハイライトを取得できないC#NEST

ElasticSearchサーバー2.3.1とNEST 2.3.0を使用しています。私の経験から

results = _client.Search<dynamic>(d => 
      d.AllIndices() 
      .AllTypes() 
      .Query(q => q.QueryString(s => s.Query(query))) 
      .Highlight(h => 
       h.Fields(f => 
        f.Field("*").PreTags("<em>").PostTags("</em>") 
       ) 
      ) 
     ); 
+0

ハイライトの使用例を見てみましょう - https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/highlighting-usage.html –

+0

再現する簡潔な例はありますかあなたは何を見ているのですか? –

答えて

0

、*フィールド要求にデータを返すために蛍光ペンを得るために、あなたはまた、独自のハイライトクエリ内で、それをクエリのコピーを提供する必要があります。私はあなたがクエリ文字列を使用しているので、それがあると思い

"fields": { 
    "*": { 
     "highlight_query": { 
      "query_string": { 
       "query": "same as string query value" 
      } 
     } 
    } 
    } 
0

恩赦ネイティブ形式が、ここでは*フィールドパターンからhightlightsが得られる例です。複数のフィールドを照会すると、そのフィールドをMultipleMatchに変更することができます。また、1つのフィールドを照会するだけであれば、Matchを使用することもできます。特殊文字について注意してください。たとえばField1でクエリを実行していて、クエリキーワード(検索キーワード)がこのフィールド2のようになっているとします。「あなたのキーワードはここにあります。」と表示されています。間違った結果が出ている可能性があります。

関連する問題