ES系列6-ElasticSearch集群进阶

ES系列6-ElasticSearch集群进阶,第1张

将查询内部的结果文档得分都设定为1或者boost的值,多用于结合bool查询实现自定义得分

bool

布尔查询有一个或者多个布尔子句组成

filter查询只过滤符合条件的文档,es会有只能缓存,因此其执行效率很高,做简单的匹配查询且不考虑算分是,推荐使用filter替代query

should 使用分两种情况

bool查询包含should,不包含must查询,只包含should,文档必须满足至少一个条件,minimum_should_match可以满足条件的个数或者百分比。

bool查询同时包含should和must查询,文档不必满足should中的条件,但是如果满足条件,会增加相关性得分。

dis_max query

function_score query

boosting query

1在倒排索引中查找搜索串,获取document list。

2为每个在倒排索引中搜索到的结果,构建一个bitset,[0, 0, 0, 1, 0, 1]

3遍历每个过滤条件对应的bitset,优先从最稀疏的开始搜索,查找满足所有条件的document

4caching bitset,跟踪query,在最近256个query中超过一定次数的过滤条件,缓存其bitset。对于小segment(<1000,或<3%),不缓存bitset。

5filter大部分情况下来说,在query之前执行,先尽量过滤掉尽可能多的数据

6如果document有新增或修改,那么cached bitset会被自动更新

7以后只要是有相同的filter条件的,会直接来使用这个过滤条件对应的cached bitset

布尔查询是一种最常用的组合查询方式,布尔查询把多个子查询组合(combine)成一个布尔表达式,所有子查询之间的逻辑关系是与(and);只有当一个文档满足布尔查询中的所有子查询条件时,ElasticSearch引擎才认为该文档满足查询条件。布尔查询支持的子查询类型共有四种,分别是:must,should,must_not和filter:

搜索java,elasticsearch,hadoop,spark关键字需要至少匹配2个

以上就是关于ES系列6-ElasticSearch集群进阶全部的内容,包括:ES系列6-ElasticSearch集群进阶、elasticsearch之七search搜索详解、「必备技能」Elasticsearch索引全生命周期管理(附代码)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9820864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存