如何通过Elasticsearch实现搜索的关键词达到高亮的效果
在Elasticsearch中,要实现搜索关键词高亮的效果,可以使用highlight
查询参数。以下是一个使用Elasticsearch的REST API的例子,它演示了如何对搜索结果中的关键词进行高亮显示:
POST /_search
{
"query": {
"match": {
"content": "Elasticsearch"
}
},
"highlight": {
"fields": {
"content": {}
}
}
}
在这个例子中,我们对content
字段进行搜索,搜索词是"Elasticsearch"。在highlight
部分,我们指定了要高亮显示的字段。Elasticsearch会返回搜索结果,并在命中的文档片段中标记出搜索词,通常通过HTML的<em>
标签进行标记,以突出显示搜索词。
返回的结果可能如下所示:
{
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"hits": [
{
"_index": "example",
"_id": "1",
"_score": 0.5753642,
"_source": {
"content": "Elasticsearch is a great tool for full-text search and analytics."
},
"highlight": {
"content": [
"Elasticsearch is a <em>great</em> tool for full-text <em>search</em> and analytics."
]
}
}
]
}
}
在这个例子中,Elasticsearch返回了一个文档的高亮片段,其中"Elasticsearch"和"search"这两个搜索词被<em>
标签包围,从而实现了高亮显示的效果。
评论已关闭