Elasticsearch之高亮查询
一 前言
如果返回的结果集中很多符合条件的结果,那怎么能一眼就能看到我们想要的那个结果呢?比如下面网站所示的那样,我们搜索elasticsearch,在结果集中,将所有elasticsearch高亮显示?
如上图我们搜索百度一样。我们该怎么做呢?
二 准备数据
PUT lqz/doc/4 { "name":"石头", "age":29, "from":"gu", "desc":"粗中有细,狐假虎威", "tags":["粗", "大","猛"] }
三 默认高亮显示
我们来查询:
GET lqz/doc/_search { "query": { "match": { "name": "石头" } }, "highlight": { "fields": { "name": {} } } } #我们使用highlight属性来实现结果高亮显示,需要的字段名称添加到fields内即可,elasticsearch会自动帮我们实现高亮。
结果如下: { "took" : 1, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 1.5098256, "hits" : [ { "_index" : "lqz", "_type" : "doc", "_id" : "4", "_score" : 1.5098256, "_source" : { "name" : "石头", "age" : 29, "from" : "gu", "desc" : "粗中有细,狐假虎威", "tags" : [ "粗", "大", "猛" ] }, "highlight" : { "name" : [ "<em>石</em><em>头</em>" ] } } ] } }