如何重新创建"或"现在查询"缺少"已弃用?

时间:2017-02-26 05:27:00

标签: elasticsearch elasticsearch-5

我正在升级到elasticsearch 5.2并拥有以下查询,现在这个查询失败了,因为"缺少"不推荐使用过滤器:

{
    "query": {
      "bool": {
        "should": [
          {
            "missing": {
              "field": "birthday"
            }
          },
          {
           "range": {
             "birthday": {
               "lte": "20131231"
             }
           }
          }
        ]
      }
    }
  }

因此,我正在寻找丢失生日字段或生日少于12/31/2013的文档。建议更换"缺失"是to use "must_not"。我明白了,但我现在怎么做同样的#34;或者#34;查询我以前怎么回事?我有:

{
  "query": {
    "bool": {
      "should": {
        "range": {
          "birthday": {
            "lte": "20131231"
          }
        }
      },
      "must_not": {
        "exists": {
          "field": "birthday"
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

你走在正确的道路上,几乎就在那里:

{
  "query": {
    "bool": {
      "should": [
        {
          "range": {
            "birthday": {
              "lte": "20131231"
            }
          }
        },
        {
          "bool": {
            "must_not": {
              "exists": {
                "field": "birthday"
              }
            }
          }
        }
      ]
    }
  }
}