ElasticSearch-数据字段

本文的目的在于介绍关于ElasticSearch内部的一些运行情况。在这里我们先不介绍新的知识点, 数据字段是我们要经常查阅的内容之一,但我们使用的时候不必太在意。

当你对一个字段进行排序时,ElasticSearch 需要进入每个匹配到的文档得到相关的值。 倒排索引在用于搜索时是非常卓越的,但却不是理想的排序结构。

a.当搜索的时候,我们需要用检索词去遍历所有的文档。

b.当排序的时候,我们需要遍历文档中所有的值,我们需要做反倒序排列操作。

为了提高排序效率,ElasticSearch 会将所有字段的值加载到内存中,这就叫做"数据字段"。

注:ElasticSearch将所有字段数据加载到内存中并不是匹配到的那部分数据。 而是索引下所有文档中的值,包括所有类型。

将所有字段数据加载到内存中是因为从硬盘反向倒排索引是非常缓慢的。尽管你这次请求需要的是某些文档中的部分数据, 但你下个请求却需要另外的数据,所以将所有字段数据一次性加载到内存中是十分必要的。

ElasticSearch中的字段数据常被应用到以下场景:

a.对一个字段进行排序

b.对一个字段进行聚合

c.某些过滤,比如地理位置过滤

d.某些与字段相关的脚本计算

毫无疑问,这会消耗掉很多内存,尤其是大量的字符串数据 -- string字段可能包含很多不同的值,比如邮件内容。 值得庆幸的是,内存不足是可以通过横向扩展解决的,我们可以增加更多的节点到集群。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Solr&ElasticSearch原理及应用 一、综述 搜索 http://baike.baidu.com/it...
    楼外楼V阅读 7,339评论 1 17
  • 第3章 映射 映射是定义存储和索引的文档类型以及字段的过程。索引中的每一个文档都有一个类型,每种类型都有它自己的映...
    MR_ChanHwang阅读 2,320评论 0 1
  • Author: 袁野Date: 2018.01.05Version: 1.0 注意事项:本文档所述为通用情况,不可...
    大数据之心阅读 10,244评论 9 37
  • 空白的课桌 梦已抛在明湖畔 昏黄的夜灯 映起皱皱流年 谁懂时光的咆哮 拼命向手机在招手 啊 我又丢了一天
    山河且书阅读 164评论 0 1
  • 分享 最近在看大江大河,其中小雷一家印象深刻,一无所有,白手起家,摸着石头过河,奋起拼搏,最终走向理想生活。 回望...
    Dolas阅读 575评论 0 2