许多应用都倾向于在每个搜索结果中 高亮 部分文本片段,以便让用户知道为何该文档符合查询条件。在 Elasticsearch 中检索出高亮片段也很容易。
再次执行前面的查询,并增加一个新的 highlight 参数:
GET /megacorp/employee/_search{"query": {"match_phrase": {"about": "rock climbing"}},"highlight": {"fields": {"about": {}}}}
当执行该查询时,返回结果与之前一样,与此同时结果中还多了一个叫做 highlight 的部分。这个部分包含了 about 属性匹配的文本片段,并以 HTML 标签 封装:
{..."hits": {"total": 1,"max_score": 0.23013961,"hits": [{..."_score": 0.23013961,"_source": {"first_name": "John","last_name": "Smith","age": 25,"about": "I love to go rock climbing","interests": [ "sports", "music" ]},"highlight": {"about": ["I love to go <em>rock</em> <em>climbing</em>"]}}]}}
