如何在Elasticsearch中检索文档的所有元数据字段?
Elasticsearch 强制展示文档全部元数据字段方法
当然可以通过查询强制返回文档的全部元数据字段,不过你的示例写法可以更简洁高效,下面是具体说明和调整后的查询示例:
核心说明
- 像
_id、_index、_score这类基础元数据,默认就会出现在搜索结果的每个hit对象里,不用额外指定。 - 要获取
_field_names、_ignored这类需要显式调用的元数据,或者想一次性拉取所有以_开头的文档级元数据,直接用通配符_*匹配即可。 - 注意
_doc_count不属于文档元数据,它是聚合查询的专属返回字段,常规单文档查询不会返回这个字段。 _meta是索引级的元数据,不属于单个文档,要获取它得调用索引设置接口(GET /search-test/_settings),没法通过搜索接口返回。
调整后的查询示例
如果只需要返回所有文档级元数据,不需要原始文档内容:
GET /search-test/_search { "_source": false, "fields": ["_*"], "query": { "bool": { "must": [ {"match": {"_id": "11085"}} ] } } }
如果需要同时返回原始文档内容+所有元数据:
GET /search-test/_search { "_source": true, "fields": ["_*"], "query": { "bool": { "must": [ {"match": {"_id": "11085"}} ] } } }
内容的提问来源于stack exchange,提问作者searchx searchy
相关产品推荐
相关产品推荐

