在 Elasticsearch 中搜索其值为 NULL 或任何特定值的字段



我想在 elasticsearch 中编写一个查询,在字段中搜索空值和任何特定值,我读了这个链接:null_values

并发现对于类型为布尔值或长整型的字段,它们的默认值为 null,但我如何告诉 Elastic 在长字段中搜索具有值或 null:

field == null OR field == [1,2,3,4,]

现在当我像这样查询时

'should' => [
  [
    'term' => ['field' => null]
  ],
  [
    'terms' => ['field' => [1, 2, 3, 4, 5 ,6]
  ]
]

它给我错误错误请求..

你能帮我写我的查询吗?谢谢

您需要

使用 exists 查询检查字段是否存在。

在查询字符串语法中,它是这样的:

NOT(_exists_:field) OR field == [1,2,3,4,]

在查询 DSL 中,它如下所示:

'should' => [
  [
    'bool' => [ 'must_not' => [ 'exists' => [ 'field' => 'field' ] ] ]
  ],
  [
    'terms' => ['field' => [1, 2, 3, 4, 5 ,6]
  ]
]

相关内容

  • 没有找到相关文章

最新更新