带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(4)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(4)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.1.inverted index,doc_values,store及source(3) https://developer.aliyun.com/article/1231136


存储

 

默认情况下,字段原始值会被索引用于查询,但是不会被存储。为了展示文档内容,通过一个叫 _source 的字段用于存储整个文档的原始值。

 

在字段的映射 (mapping) 设置 store: true,可以使索引单独保存这个字段。通常情况下,如果文档本身十分庞大,而一些字段又会经常单独使用,那么这样的字段,就可以设置为单独存储,然后可以使用 stored_fields 单独检索这些字段。

 

例如,如果你的文档包含标题、时间和一个很大的正文字段,你可能只需要检索标题、时间字段,没必要从很大的 _source 原文中解析出这些字段:

 

#创建索引,指定常用字段store属性
PUT /my-index-000001
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "store": true 
      },
      "date": {
        "type": "date",
        "store": true 
      },
      "content": {
        "type": "text"
      }
    }
  }
}
#插入记录
PUT /my-index-000001/_doc/1
{
  "title":   "短文本标题",
  "date":    "2021-05-01",
  "content": "很长很长很长的正文字段..."
}
#查询结果返回stored_fields指定字段
GET /my-index-000001/_search
{
  "stored_fields": [ "title", "date" ] 
}

注意:stored_fields 返回结果是数组格式。如果你需要获取原始文档,可以通过_source字段替代。

 

原文

 

_source 字段包含索引时发送的原始 JSON 文档。_source 字段本身不建索引,但是存储原始文档,以便在执行查询请求时,可以将其返回。可以通过设置,禁用原文字段,或者只存储特定字段。

 

_source 在 Lucene 中是映射为一个特殊的字段:


image.png



Elasticsearch 中 _source 字段的主要目的,是通过 doc_id 读取该文档的原始内容,所以只需要存储 Store 即可。

 

Elasticsearch 中使用 _source 字段可以实现以下功能:



 《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.1.inverted index,doc_values,store及source(5) https://developer.aliyun.com/article/1231134


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
12月前
|
算法 索引
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(1)
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(1)
|
12月前
|
存储 缓存 算法
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(2)
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(2)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(3)
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(3)
|
12月前
|
存储 API 索引
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(5)
带你读《Elastic Stack 实战手册》之16:——3.4.2.1.inverted index,doc_values,store及source(5)
|
12月前
|
API 索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(3)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(3)
|
12月前
|
存储 API 索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(6)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(6)
|
12月前
|
JSON API 数据格式
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(2)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(2)
|
12月前
|
API 网络架构 索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(1)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(1)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(4)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(4)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)
带你读《Elastic Stack 实战手册》之26:——3.4.2.11.Index alias(5)