Elasticsearch 查询:加 _doc 和不加 _doc 的区别详解
Elasticsearch 查询:加 _doc 和不加 _doc 的区别详解
在使用 Elasticsearch 进行查询时,你可能会遇到 _doc 这个看似神秘的参数。本文将详细解释 _doc 的作用,并解答为什么加 _doc 和不加 _doc 会导致查询结果不同。
_doc 的作用:控制返回数据的范围
简而言之,_doc 参数控制着 Elasticsearch 查询返回数据的范围:
- 加上
_doc: 查询结果将包含完整的文档数据,即文档中所有字段的值都会被返回。 - 不加
_doc: 查询结果将仅返回匹配的字段数据,即只有在查询条件中指定的字段值才会被返回。
为什么查询结果不同?
假设你的 Elasticsearch 索引中存储了产品信息,每个文档包含 'productName', 'price', 'description' 等字段。
-
不加
_doc查询:- 如果你使用 'productName' 进行查询,那么 Elasticsearch 只会返回匹配的 'productName' 字段值,而不会返回 'price' 和 'description' 等其他字段的信息。
-
加上
_doc查询:- 如果你使用 'productName' 进行查询,并加上
_doc参数,那么 Elasticsearch 会返回匹配文档的所有字段信息,包括 'productName', 'price', 'description' 等等。
- 如果你使用 'productName' 进行查询,并加上
什么是文档级别的数据?
文档级别的数据指的是 Elasticsearch 中每个文档所包含的所有字段数据,包括文本、数字、日期等各种数据类型。每个文档都有一个唯一的 ID,可以通过该 ID 来获取文档级别的数据。
总结
_doc参数控制 Elasticsearch 查询返回数据的范围。- 加上
_doc返回完整文档数据,不加则只返回匹配字段数据。 - 选择使用哪种方式取决于你的具体需求。如果需要获取完整信息,则使用
_doc;如果只需要特定字段,则可以不加_doc以提高查询效率。
原文地址: https://www.cveoy.top/t/topic/jrwI 著作权归作者所有。请勿转载和采集!