0
点赞
收藏
分享

微信扫一扫

es 7.x 进阶 文档搜索

木匠0819 2022-02-26 阅读 78

文章目录

早期的全文检索

早期的全文检索是把整个文档集合建一个很大的倒排索引写入磁盘, 一旦新的索引就绪, 就的会被替换, 这样就能检索新的数据.

这样做倒排索引写入磁盘后, 就不会变化, 不可变的好处

  1. 不需要锁, 不用担心多线程并发修改
  2. 由于其不变, 可以把数据写入缓存, 并且缓存也不存在一致性问题, 提升性能.
  3. 其他缓存, 在索引的生命周期内始终有效, 不需要每次修改数据时重新建立.
  4. 单个大的倒排索引数据会被压缩, 减少磁盘的I/O, 和需要被缓存到内存的索引使用量.

不可变的坏处:
由于不可变, 不能修改, 只能重新建立一个新的索引. 如果频繁更新数据, 那么性能极差.

动态更新索引

保留不可变的前提下, 实现倒排索引更新?
新的索引使用补充索引, 老的索引不动.

查询的时候 , 按段查询, 每一段是一个倒排索引.

由于不可变性, 删除某个文档时, 只是加标记, 而不是物理删除.
当有多个倒排索引合并的时候, 会把真正需要删除的数据进行删除.

举报

相关推荐

0 条评论