我正在使用Java的高级REST API执行Elasticsearch查询,并希望看到处于活动状态或没有参考ID的记录。我正在按名称查询记录,如果我直接用/ _search?q =击中索引,我会看到想要的结果。
我的逻辑是否正确(伪代码):
postFilters.MUST {
Should {
MustNotExist {referenceId}
Must {status = Active}
}
Should {
MustNotExist {referenceId}
Must {type = Person}
}
}
我得到的是带有参考ID的活动记录。但是,我想包括也没有referenceId的记录,因此为什么我必须使用MustNotExist {referenceId}。
为简单起见,可以删除第二个Should子句(用于测试),因为第一个子句本身无法正常工作。
答案 0 :(得分:0)
在我的情况下,我必须使用匹配查询而不是术语查询,因为要查询的值不是原始值或字符串。例如,必须(Must),类型= Person(Person),Person(Person)的部分是一个枚举,因此寻找“ Person”是不正确的,而match使其可以“ match”。