在elasticsearch中,有没有办法显示文档中的哪个字段是"命中"?

Bra*_*ght 3 elasticsearch

使用elasticsearch搜索某些文档时,我想查看文档中哪个字段是"命中",将其标记为搜索结果.是否有本地方法来执行此操作,或者我是否需要在搜索客户端中执行此操作?

例如:

GET /events/_search?q=nottingham
Run Code Online (Sandbox Code Playgroud)

给我:

{//elided
    {'hits'[
       {'id':1,
        'name': 'Some name',
        'nicknames': ['Nottingham']
       }]}}
Run Code Online (Sandbox Code Playgroud)

从这个例子中可以明显看出这个昵称是匹配的,但是我可以通过elasticsearch来标记这个吗?

imo*_*tov 6

Elasticsearch可以在结果字段中查找并突出显示查询中的术语.有关更多信息,请参见http://www.elasticsearch.org/guide/reference/api/search/highlighting.html.从技术上讲,它与标记导致"命中"的字段不同,但对于大多数实际用途,它同样有用.

  • 是的,要向用户显示信息,请使用突出显示功能.如果您想了解文档如何匹配的技术细节,请参阅Analyze API [http://www.elasticsearch.org/guide/reference/api/admin-indices-analyze.html]. (3认同)