让我们说我将文档放在弹性搜索中如下:
{
"name": "xyz",
"address": {
"pincode": "111111",
"area": "downtown"
}
}
我希望获得其中包含pincode
的所有文档。当然,在ES中输入的某些文档可能没有pincode
字段。
我试过这样的事情,但没有成功:
XGET _search
{
"query": {
"terms": {
"_field_names": [ "pincode" ]
}
}
}
答案 0 :(得分:1)
您需要exists查询。
{
"query" : {
"filtered" : {
"filter" : {
"exists" : { "field" : "address.pincode" }
}
}
}
}
答案 1 :(得分:1)
您需要使用missing
filter。如果您的文档中的字段完全丢失,exists
filter将无效。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must_not": [
{
"missing": {
"field": "address.pincode"
}
}
]
}
}
}
}
}