Exists 查询
编辑Exists 查询
编辑返回包含某个字段的索引值的文档。
由于多种原因,文档的字段可能不存在索引值
- 源 JSON 中的字段为
null
或[]
- 该字段在映射中设置了
"index" : false
和"doc_values" : false
- 字段值的长度超过了映射中的
ignore_above
设置 - 字段值格式错误,并且在映射中定义了
ignore_malformed
示例请求
编辑resp = client.search( query={ "exists": { "field": "user" } }, ) print(resp)
response = client.search( body: { query: { exists: { field: 'user' } } } ) puts response
res, err := es.Search( es.Search.WithBody(strings.NewReader(`{ "query": { "exists": { "field": "user" } } }`)), es.Search.WithPretty(), ) fmt.Println(res, err)
const response = await client.search({ query: { exists: { field: "user", }, }, }); console.log(response);
GET /_search { "query": { "exists": { "field": "user" } } }
exists
的顶层参数
编辑-
field
-
(必需,字符串)要搜索的字段名称。
虽然如果 JSON 值为
null
或[]
,则认为该字段不存在,但这些值将表明该字段确实存在- 空字符串,例如
""
或"-"
- 包含
null
和另一个值的数组,例如[null, "foo"]
- 自定义的
null-value
,在字段映射中定义
- 空字符串,例如
注意事项
编辑查找缺少索引值的文档
编辑要查找缺少某个字段的索引值的文档,请将 must_not
布尔查询 与 exists
查询一起使用。
以下搜索返回缺少 user.id
字段的索引值的文档。
resp = client.search( query={ "bool": { "must_not": { "exists": { "field": "user.id" } } } }, ) print(resp)
response = client.search( body: { query: { bool: { must_not: { exists: { field: 'user.id' } } } } } ) puts response
const response = await client.search({ query: { bool: { must_not: { exists: { field: "user.id", }, }, }, }, }); console.log(response);
GET /_search { "query": { "bool": { "must_not": { "exists": { "field": "user.id" } } } } }