即使是不成熟的尝试,也胜于胎死腹中的策略。

查询时使用terms来替换多个term可以提高效率吗?

Elasticsearch | 作者 chengyang | 发布于2019年02月18日 | 阅读数:6442

系统提示:这个人太懒了,什么问题描述都没有写!

已邀请:

rochy - rochy_he

赞同来自: code4j

根据 lucene 官方的解释:
当 term 的个数少的时候,termsQuery  等效为多个 termQuery 使用 boolQuery 使用 or 操作符连接起来;
当 term 的个数多的时候,termsQuery 查询创建一个位集的方式进行查询,效率会比普通的 bool 方式好一些
 
参考:https://lucene.apache.org/core ... .html

core_wzw - 某AILab搜索技术负责人

赞同来自:

term是在单一field上匹配一个term。terms是在单一field上匹配多个term,匹配其一即可。它们两都是在单一field上使用,当我们需要在某个field上匹配多个term时,为了减少dsl冗余,会用terms来写,但效率和写多个term dsl是一样的,后者只会显得写dsl的人不考虑dsl可读性。
es dsl解释器会将terms拆成多个term的OR处理,这操作不是热点,跟你自己写多个term效率是一样的。

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

看看这个对比效果,做一下参考依据:https://www.elastic.co/blog/el ... -fast

要回复问题请先登录注册