2012-04-11 9 views
3

elasticsearchを使用していくつかのドキュメントを検索しているとき、ドキュメントのどのフィールドが検索結果として「ヒット」したのかを確認したいと思います。これを行うネイティブな方法はありますか、それとも検索クライアントで行う必要がありますか?elasticsearchでは、ドキュメント内のどのフィールドが「ヒット」だったかを示す方法はありますか?

は、例えば:

{//elided 
    {'hits'[ 
     {'id':1, 
     'name': 'Some name', 
     'nicknames': ['Nottingham'] 
     }]}} 

それはニックネームが一致したことをこの例からも明らかだが、私はフラグをelasticsearchを得ることができます私のために:

GET /events/_search?q=nottingham 

は私を与えますか?

答えて

6

Elasticsearchは、結果フィールドでクエリから用語を見つけて強調表示できます。詳細については、http://www.elasticsearch.org/guide/reference/api/search/highlighting.htmlを参照してください。技術的に言えば、「ヒット」を引き起こしたフィールドにフラグを付けることと同じではありませんが、最も実用的な目的では、それは有用です。

+3

はい、ユーザーに情報を表示するには、強調表示機能を使用します。どのように文書が一致したかの技術的詳細を知りたい場合は、Analyze API [http://www.elasticsearch.org/guide/reference/api/admin-indices-analyze.html]を参照してください。 – karmi

関連する問題