1
我有一些elasticsearch记录被存储为空字符串或空值。我正在尝试开发一个查询,使我能够从索引中返回这些查询。我想出了:查找匹配空值和空值的ElasticSearch记录
{
'query': {
'filtered': {
'filter': {
'bool': {
'should': [
{'term': {'field1': ''}},
{"missing" : {"field": "field1"}},
],
}
}
}
}
}
这对我的目的按预期工作,并返回正确的行。但是,如果我尝试搜索任何不止一个字段,那么“应该”子句OR将这两个字段放在一起。这是一个问题,因为我希望这是一个与关系:
{
'query': {
'filtered': {
'filter': {
'bool': {
'should': [
{'term': {'field1': ''}},
{"missing" : {"field": "field1"}},
# these fields should be AND but are OR
{'term': {'field2': ''}},
{"missing" : {"field": "field2"}},
],
}
}
}
}
}
反正是有,我可以做上面一个过滤器,或与两个过滤器一起?
谢谢你,这解决了我的问题。 – stephens
我很好奇你选择了哪个选项。 – Val
第一个。这似乎最适合我的使用案例和施工方法。 – stephens