Elasticsearch - 获取具有字段名称的文档

时间:2016-03-22 14:07:12

标签: elasticsearch elasticsearch-query nosql

让我们说我将文档放在弹性搜索中如下:

{
"name": "xyz",
"address": {
    "pincode": "111111",
    "area": "downtown"
    }
}

我希望获得其中包含pincode的所有文档。当然,在ES中输入的某些文档可能没有pincode字段。

我试过这样的事情,但没有成功:

XGET _search
{
    "query": {
        "terms": {
        "_field_names": [ "pincode" ] 
        }
    }
}

2 个答案:

答案 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"
              }
            }
          ]
        }
      }
    }
  }
}