我是Elasticsearch的新手,我需要在查询中添加OR
条件的帮助。我目前有这个查询。
{
:query=>{
:bool=>{
:must=>[{
:query_string=>{
:default_operator=>"AND",
:query=>"*"
}
}]
}
},
:filter=>{
:and=>[{
:term=>{
:partner_id=>26
}
},
{:term=>{
:is_unpublished=>"false"}
}]
}
}
目前,它当前接受
26
,但是如果我有2个值怎么办?例如。 26和36,如何在OR条件下添加36
?如果这是SQL,它将是这样的:
SELECT * FROM table WHERE (partner_id = 26 OR partner_id = 36) AND is_unpublished = false
我尝试了以下方法,但是没有运气:
{:term => {:partner_id => 36}, :or => [:term => {:partner_id => 26}]}
这也没有运气:
{:term => {:or =>[{:partner_id => 26},{:partner_id => 36}]}}
最佳答案
使用“应该”吗?
"should" : [
{ "term" : { "tag" : "wow" } },
{ "term" : { "tag" : "elasticsearch" } }
]
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
关于elasticsearch - 如何在Elasticsearch的术语内使用OR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811619/