大佬教程收集整理的这篇文章主要介绍了ElasticSearch:ElasticSearch中的IN等效运算符,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
与克里斯建议的评论类似,类似的替换IN
是terms
过滤器 (查询暗示得分,这可能会改善返回的订单)。
SELECT * FROM table WHERE ID IN (1, 2, 3);
等效的Elasticsearch 1.x过滤器为:
{
"query" : {
"filtered" : {
"filter" : {
"terms" : {
"ID" : [1, 2, 3]
}
}
}
}
}
等效的Elasticsearch 2.x +过滤器为:
{
"query" : {
"bool" : {
"filter" : {
"terms" : {
"ID" : [1, 2, 3]
}
}
}
}
}
重要的一点是,terms
过滤器(以及与此相关的查询)可以在完全匹配的情况下工作。它隐含地是一个or
操作,类似于IN
。
如果要反转它,可以使用Not过滤器,但是我建议使用稍微冗长的bool
/ @H_512_3@must_not过滤器(以养成也使用bool
/@H_512_3@must和的习惯bool
)。
{
"query" : {
"bool" : {
"must_not" : {
"terms" : {
"ID" : [1, 2, 3]
}
}
}
}
}
总体而言,bool
复合查询语法是Elasticsearch中最重要的过滤器之一,term
(单数)和terms
过滤器(复数)也是如此。
以上是大佬教程为你收集整理的ElasticSearch:ElasticSearch中的IN等效运算符全部内容,希望文章能够帮你解决ElasticSearch:ElasticSearch中的IN等效运算符所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。