Elasticsearch(027):es中Meta-Fields(元数据类型)之概述(_field_names)
程序员文章站
2022-04-23 22:09:56
...
概述
该_field_names字段会索引文档中所有包含非空值的字段名称。_field_names字段用于存在查询和缺失查询的情况下,查询指定指定字段拥有非空值的文档是否存在。
注意:由于_field_names引入了一些索引时间开销,因此,如果要优化索引速度并且不需要exists查询,则可能需要禁用此字段。
使用示例
PUT example
PUT example/docs/_mapping
{
"properties":{
"id":{"type": "long"},
"title":{"type": "text"},
"content":{"type": "text"}
}
}
PUT example/docs/1
{
"id":1,
"title": "This is a title"
}
PUT example/docs/2
{
"id":2,
"title": "This is another a title!!",
"content": "content............"
}
PUT example/docs/3
{
"id":3,
"content": "content3333333333"
}
# 查询title非空的文档
GET example/docs/_search
{
"query": {
"exists": {
"field": "title"
}
}
}
返回结果
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "example",
"_type": "docs",
"_id": "2",
"_score": 1,
"_source": {
"id": 2,
"title": "This is another a title!!",
"content": "content............"
}
},
{
"_index": "example",
"_type": "docs",
"_id": "1",
"_score": 1,
"_source": {
"id": 1,
"title": "This is a title"
}
}
]
}
}