zoukankan      html  css  js  c++  java
  • elasticsearch中mapping的_source和store的笔记

    0、故事引入

    无意中看到了ES的mapping中有store字段,作为一个ES菜鸡,有必要对这个字段进行下笔记。

    1、_source

    _source字段我在们进行检索时相当重要,

    ES默认检索只会返回ID,如果在{"enabled":false}情况下,你需通过根据这个ID去去倒排索引中去取每个Field数据,效率不高。

    而反之,在{"enabled":true}的情况下可以根据ID直接检索对应source JSON的字段,不用去倒排索引去按Field取数据。

    尽管_source非常有用, 但它确实会占用索引的存储空间, 所以也可以禁用(enabled false)、启用状态的压缩策略(compress)。

    压缩的策略有两类:

    • compress:是否进行压缩,建议一般情况下将其设为true 
    • "includes" : ["author", "name"], "excludes" : ["sex"] 

    2、store

    默认为no,

    如果在{"store":yes}的情况下,ES会对该字段单独存储倒排索引,每次根据ID检索的时候,会多走一次IO来从倒排索引取数据。

    而如果_source enabled 情况下,ES可以直接根据Client类来解析_source JSON,只需一次IO就将所有字段都检索出来了。

    {"store":yes}既然这么费力不讨好,但是仍然有两个应用场景:

    • 文档很长,检索所有文档或者存储所有文档、获取所有field的代价比较大
    • 仅仅针对某几个字段进行re-index的时候

    3、总结

    _sourcestore  yes no
    enabled

    store为yes的字段从倒排索引里检索,

    浪费IO次数

    所有字段根据Client类解析实现存储的JSON串

    仅需一次IO

    disabled

    store为yes的字段从倒排索引里检索,

    其他字段能检索不能展示  

    所有字段只能检索,不能展示

    PS. 索引后-->可查询检索,存储后-->可展示

    999、参考

    ElasticSearch学习

    elasticsearch文档-字段的mapping

    elasticsearch的store属性跟_source字段

  • 相关阅读:
    Latex: 插入数学公式
    Matlab: 作图
    Random Access Iterator 2019 ICPC 徐州网络赛(树上概率DP)
    2019南京网络赛D Robots(概率DP+拓扑序)
    HDU3507 Print Article(斜率优化+单调队列)
    hdu4632(区间dp)
    POJ 1651 Multiplication Puzzle 区间DP
    暑假集训
    POJ-2955(区间DP)
    kuangbin计算几何模板转载
  • 原文地址:https://www.cnblogs.com/zklidd/p/6149120.html
Copyright © 2011-2022 走看看