众所周知_source字段存储的是索引的原始内容,那store属性的设置是为何呢?es为什么要把store的默认取值设置为no?设置为yes是否是重复的存储呢?
我们将一个field的值写入es中,要么是想在这个field上执行search操作(不知道具体的id),要么执行retrieve操作(根据id来 检索)。但是,如果不显式的将该field的store属性设置为yes,同时_source字段enabled的情况下,你仍然可以获取到这个 field的值。这就意味着在一些情况下让一个field不被index或者store仍然是有意义的。
当你将一个field的store属性设置为true,这个会在lucene层面处理。lucene是倒排索引,可以执行快速的全文检索,返回符合检索条 件的文档id列表。在全文索引之外,lucene也提供了存储字段的值的特性,以支持提供id的查询(根据id得到原始信息)。通常我们在lucene层 面存储的field的值是跟随search请求一起返回的(id+field的值)。es并不需要存储你想返回的每一个field的值,因为默认情况下每 一个文档的的完整信息都已经存储了,因此可以跟随查询结构返回你想要的所有field值。
有一些情况下,显式的存储某些field的值是必须的:当_source被disabled的时候,或者你并不想从source中parser来得到 field的值(即使这个过程是自动的)。请记住:从每一个stored field中获取值都需要一次磁盘io,如果想获取多个field的值,就需要多次磁盘io,但是,如果从_source中获取多个field的值,则只 需要一次磁盘io,因为_source只是一个字段而已。所以在大多数情况下,从_source中获取是快速而高效的。
es中默认的设置_source是enable的,存储整个文档的值。这意味着在执行search操作的时候可以返回整个文档的信息。如果不想返回这个文 档的完整信息,也可以指定要求返回的field,es会自动从_source中抽取出指定field的值返回(比如说highlighting的需求)。
相关推荐
在Elasticsearch(以下简称ES)中,_source字段扮演着至关重要的角色。它包含了索引时传递的原始JSON文档体。了解和掌握_source字段的工作原理对于优化查询性能、提高数据检索效率至关重要。 #### 二、_source字段...
前言 第1章 Elasticsearch入门 1 1.1 Elasticsearch是什么 1 1.1.1 Elasticsearch的历史 2 1.1.2 相关产品 3 1.2 全文搜索 3 1.2.1 Lucene介绍 4 1.2.2 Lucene倒排索引 4 1.3 基础知识 6 1.3.1 Elasticsearch术语及...
对于XML数据,Logstash提供了XML输入插件,可以解析XML文档并将其字段映射到Elasticsearch索引的字段。 创建Logstash配置文件时,我们需要定义输入、过滤和输出三个部分。输入部分设置为读取XML文件,例如: ```...
在这个示例中,定义了一个名为"title"的字段,它是一个字符串类型,并且设置为存储(store)在Elasticsearch中。构建器模式用于构建JSON结构的映射。 除了映射,还可以为索引设置某些属性,例如启用时间戳字段来...
本文将详细介绍芒果TV在ELK(Elasticsearch、Logstash、Kibana)日志系统实践中的经验与心得,特别是针对日志收集、存储、分析等环节的关键技术和优化策略。 #### 二、背景介绍 在2015年10月17日举办的ES国内...
ElasticSearch 支持多种字段类型,包括但不限于: - **字符型**:适用于文本和字符串。 - **数值型**:支持整数和浮点数。 - **布尔型**:存储布尔值。 - **二进制型**:存储二进制数据。 - **multi_field 类型**:...
2. **Elasticsearch.NET**:针对流行的分布式搜索引擎Elasticsearch的.NET客户端,提供了丰富的API和高级特性。 通过深入研究和理解Lucene.Net的源代码,开发者不仅可以掌握搜索引擎的基本原理,还能根据具体需求对...