接《初见Elasticsearch》

上文使用到了最简单的“_search?”功能,我们可以得到一个分数。

未来的搜索会出现搜索某一个词,查询到很多的结果。这个分数就是他的匹配度。匹配度越高,则分值越高。

search的参数体

上图的搜索可以看到在大括号中的内容是查询的参数体

(此处我添加了几条新的相似的数据)

search发现多条数据

上图我们可以看见,json中的hits对应的是后面java中的map数据。其中的value指的是查到了三条数据。这三条数据中的最大相关度的值是1.585。eq指的是匹配的意思。

过滤结果

上图可以看到,在搜索条件下面加上“_source”,就可以对结果进行过滤,仅显示需要的内容。

排序结果

在搜索条件下面加上“sort”,就可以对结果进行排序。“desc”是降序,“asc”是升序。

分页结果

使用分页操作如上图,from就是从什么地方开始,size就是每页显示几条数据。

bool多条件查询结果

通过bool可以进行多条件查询。must就是所有条件都需要符合。相当于sql里面的and。sql里面的or操作就是这边的should。sql里面的not操作就是这边的must_not

使用过滤器

上图使用到了filter和must并列。filter中的gt指的是比后面的值大的结果。lt就是小于。gte就是大于等于。

多关键词查找

我们可以看到,只需要使用空格,就可以同时匹配两个关键词。在结果中,虽然查到了6个结果,但是能看到分值最高的,同时包含了“男”和“大学”。其他的结果都只是相似(只要满足一个条件),且分值较低。

match:会使用分词器解析,先分析文档,在通过文档进行查询。term:精确查找。(keyword字段不会被分词器解析)所以,keyword+term才能精确查找。

高亮显示

高亮显示的命令格式如上图。可以看到结果里面《em》标签。

自定义高亮显示

在highlight中使用“pre_tags”和“post_tags”就可以自定义高亮的颜色等。

集成SpringBoot

Categories:

Tags: