许多应用都倾向于在每个搜索结果中高亮部分文本片段。在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>"
]
}
}
]
}
}
