一尘不染

检查Elasticsearch文档中是否存在字段的最佳方法

elasticsearch

可能是一个非常愚蠢的问题,检查elasticsearch中文档的字段是否存在的最佳方法是什么?我在文档中找不到任何内容。

例如,如果该文档没有字段/关键字“ price”,那么我不想返回结果。

{“ updated”:“ 2015/09/17 11:27:27”,“ name”:“ Eye Shadow”,“ format”:“ 1.5 g /
0.05 oz”,}

我可以做什么?

谢谢


阅读 1809

收藏
2020-06-22

共1个答案

一尘不染

您可以将exists过滤器与以下bool/must过滤结合使用:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "exists": {
                "field": "price"
              }
            },
            ...     <-- your other constraints, if any
          ]
        }
      }
    }
  }
}

不推荐使用(自ES5起)
您也可以将missing过滤器bool/must_not过滤结合使用:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must_not": [
            {
              "missing": {
                "field": "price"
              }
            }
          ]
        }
      }
    }
  }
}
2020-06-22