Elasticsearch高亮搜索

Elasticsearch高亮搜索教程

我们在使用 ElasticsearchDSL 进行搜索时,我们可以使用 highlight 来指定我们需要将搜索结果中高亮的字段。

Elasticsearch高亮搜索详解

语法

GET /indexname/_search { "query" : {}, "highlight": { "fields" : { "field1" : {} } } }

参数

参数 描述
indexname 需要搜索的索引名
field1 需要高亮的字段

说明

高亮的字段会被单独返回。

案例

高亮搜索

我们在 Kibana 的控制台上,输入以下代码,新建一个文档

PUT /haicodernet/_doc/1 { "index":"www.haicoder.net", "name" : "javascript", "desc" : "javascript module", "categorys" : 5, "author" : "jobs steven", "tags": [ "javascript", "vue" ] }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

63_Elasticsearch高亮搜索.png

我们看到,此时我们创建文档成功了,现在,我们再次输入以下代码,再次创建一条文档:

PUT /haicodernet/_doc/2 { "index":"www.haicoder.net", "name" : "server", "desc" : "server module", "categorys" : 10, "author" : "cainiao pei", "tags": [ "server", "python" ] }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

64_Elasticsearch高亮搜索.png

同样,我们再次创建一条记录,使用如下命令:

PUT /haicodernet/_doc/3 { "index":"www.haicoder.net", "name" : "tools", "desc" : "tools module", "categorys" : 15, "author" : "cainiao pei", "tags": [ "tools", "vim" ] }

即,我们再次成功创建了一个文档,现在,我们使用 DSL 进行高亮搜索,具体命令如下:

GET /haicodernet/_search { "query" : { "match":{ "name" : "tools" } }, "highlight": { "fields" : { "name" : {} } } }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

65_Elasticsearch高亮搜索.png

我们看到,我们使用 DSL 进行了高亮搜索,返回的数据中,将高亮的字段单独返回了。

Elasticsearch高亮搜索总结

我们在使用 Elasticsearch 的 DSL 进行搜索时,我们可以使用 highlight 来指定我们需要将搜索结果中高亮的字段。