V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yezheyu
V2EX  ›  程序员

最近在学 Elasticsearch,有点疑问求教

  •  
  •   yezheyu · 2022-01-01 12:41:59 +08:00 · 2432 次点击
    这是一个创建于 1056 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. es 的索引和数据是分开保存的吗?像 MySQL 中辅助索引那样对吗?那数据怎么保存呢?是像 Kafka 那样顺序存储吗?

    2. 把一个 index 划分到多个分区保存,那是不是每个分区保存了一份不同数据和其对应的倒排索引(即有多个倒排索引),还是说所有分区数据在某个地方共用一份公共的倒排索引(即一个 index 只有一个倒排索引)

    3. 我看别人博客中关于数据落盘,为啥没提到在插入数据时,倒排索引的调整,还是说 segment 文件不仅包含这 1s 中插入的所有文档,还包括这些文档生成的倒排索引,落盘时,再把这个 segment 的倒排索引与磁盘中倒排索引合并?

    1. 存入 es 的一条数据,像文章这样 text 字段,需要分词,然后存入对应的倒排索引中,那像其它 id ,age ,name 之类的单个词字段,不需要分词,那 es 会对它们建立倒排索引吗?还是像 MySQL 那样由你自己决定对哪些字段建索引
    7 条回复    2022-01-02 10:18:46 +08:00
    misaka19000
        1
    misaka19000  
       2022-01-01 14:19:48 +08:00
    ES 底层用的是 Lucene 引擎,最终的数据读写都是用的 Lucene
    misaka19000
        2
    misaka19000  
       2022-01-01 14:26:16 +08:00
    1. ES 的索引是用 Lucene 保存的
    2. 每一个分区(或者说 shards ,分片)都是一个独立的 Lucene 索引
    3. Lucene 的文档是只写的,所以只有新增,没有合并
    4. 可以设置字段的类型的,可以索引,也可以不索引
    misaka19000
        3
    misaka19000  
       2022-01-01 14:26:44 +08:00
    这些问题 ES 文档都有很详细的解释的,楼主多看看文档吧,ES 的文档写的很好的
    yezheyu
        4
    yezheyu  
    OP
       2022-01-01 22:33:14 +08:00 via iPhone
    @misaka19000 多谢老哥解惑,第一点和第四点还是有点不太懂,能详细说下吗?或者贴个具体 es 文档地址,我看看
    yezheyu
        5
    yezheyu  
    OP
       2022-01-01 22:34:29 +08:00 via iPhone
    @yezheyu 写错了,是第 1 个问题和第 3 个问题
    misaka19000
        6
    misaka19000  
       2022-01-01 23:38:15 +08:00
    https://juejin.cn/post/6844903914047815693

    随便找了个,感觉写的还行
    yezheyu
        7
    yezheyu  
    OP
       2022-01-02 10:18:46 +08:00
    @misaka19000 多谢老哥,翻了很多文档,大概都明白了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1166 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:52 · PVG 07:52 · LAX 15:52 · JFK 18:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.