我想在 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]
]
]