我有一个具有以下映射的文档:
"employees": {
"type": "dynamic",
"properties": {
"prop1": { ""type": "text" },
"prop2": { "type": "text" }
}
}
我想查询所有具有prop1
的文档,仅此而已,我不想获取同时具有prop1和prop2的文档。如果我对prop1使用术语查询,我还将获得可能包含prop2的文档。
答案 0 :(得分:1)
这应该有效:
GET employees/_search
{
"query": {
"bool": {
"must": [{
"exists": {
"field": "prop1"
}
}],
"must_not": [{
"exists": {
"field": "prop2"
}
}]
}
}
}
这就是说prop1 必须存在而prop2 必须不存在,因此您将不会获得同时具有prop1和prop2的文档。
答案 1 :(得分:0)
同时,我了解到,这样做的一个好方法是跟踪设置了哪些属性。因此,您可以查询属性计数和所需的属性。
答案 2 :(得分:-1)
GET /_search
{
"query": {
"exists": {
"field": "prop1"
}
}
}
存在查询可以返回所有具有必填字段的文档