Exists query
source :www.elastic.co/guide/en/el…
path:Elasticsearch.Query DSL.Term-level queries.Exists
搜索field上存在索引值的document。
一个document上的field不存在索引值的情况可能是以下原因:
- 源JSON上的该field为
null或[] - mapping上设置了
"index":false和"doc_values:false" - field上的值长度超过了
ignore_above - field的值是malformed ,并且mapping中设置了
ignore_malformed
Example request
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
}
Top-level parameters for exists
field
(Required,string)你想要搜索的field
如果JSON 值为null或[] 那么这个field被视为不存在,下面这些值被视为是存在的
- 空字符串,
""或"-" - 包含
null和其他值,例如,[null,"foo"] - 在field mapping中 定义的自定义
null-value
Notes
Find documents missing indexed values
要搜索field上没有索引值的document,请使用带有existsquery的must_not boolean query。
下面的例子会返回user.id field上没有索引值的document
GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "user.id"
}
}
}
}
}