在Elasticsearch中选择字段:_source、fields和stored_fields

在Elasticsearch中选择字段:_source、fields和stored_fields

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

在Elasticsearch中,文档源默认存储在_source字段中。可以禁用_source,仅存储特定字段,通过指定存储字段在搜索时获取这些字段的值。使用_fields参数可获取映射结果,而_source提供原始值。

🎯

关键要点

  • 在Elasticsearch中,文档源默认存储在_source字段中。

  • 可以禁用_source,仅存储特定字段,通过指定存储字段在搜索时获取这些字段的值。

  • 使用stored_fields参数可获取存储字段的值,而_source提供原始值。

  • 可以通过PUT请求禁用_source字段,并启用特定字段的存储。

  • 在搜索请求中,指定stored_fields参数以获取所需字段的信息。

  • 通过_fields参数可以获取字段的值,但得到的是映射后的结果。

  • 在搜索结果中,_source提供原始值,而fields提供转换后的值。

  • fields参数可以包括运行时字段,如计算字段,这在_source中不可用。

🔎

延伸解读

字段存储的灵活性

在Elasticsearch中,用户可以根据需求选择是否存储_source字段。这种灵活性允许开发者优化存储空间,尤其是在只需要特定字段时。禁用_source字段后,用户需确保所需字段已正确存储,以避免数据丢失。

原始值与映射值的区别

使用_fields参数时,用户获取的是经过映射的字段值,而_source字段则提供原始值。这意味着在数据处理和分析时,选择合适的字段来源至关重要,尤其是在需要精确数据时。

运行时字段的应用

Elasticsearch支持运行时字段,这些字段可以在查询时动态计算。使用_fields参数可以获取这些计算结果,而_source字段无法提供。这为复杂数据分析提供了更多可能性,但也增加了查询的复杂性。

延伸问答

Elasticsearch中的_source字段有什么作用?

_source字段默认存储文档的源数据,提供原始值。

如何在Elasticsearch中禁用_source字段?

可以通过PUT请求设置_mappings中的_source为false来禁用_source字段。

在Elasticsearch中,如何获取存储字段的值?

使用stored_fields参数在搜索请求中指定要获取的存储字段。

fields参数和_source字段有什么区别?

fields参数返回映射后的值,而_source字段提供原始未转换的值。

如何在Elasticsearch中使用运行时字段?

可以在fields参数中包含运行时字段,如计算字段,这在_source中不可用。

在Elasticsearch中,如何选择特定字段进行存储?

在创建索引时,通过设置mappings中的store为true来选择特定字段进行存储。

🏷️

标签

➡️

继续阅读