wed*_*dul 3 lucene immutability segment elasticsearch
众所周知,当elasticsearch中更新或删除文档内容时,该段并不会立即删除,而是重新创建。
之后,我们知道片段是通过时间表合并的。
我知道它之所以这样工作是因为它很昂贵。
但我不知道段不可变并且不立即合并的确切原因。
即使我搜索文档也找不到确切的原因,但如果有人知道这一点,请评论。
谢谢。
拥有不可变的段可以带来很多好处,例如
请参阅 ES 官方文档中的以下内容,了解为什么lucene 段是缓存友好的
Lucene 旨在利用底层操作系统来缓存内存中的数据结构。Lucene 段存储在单独的文件中。由于段是不可变的,因此这些文件永远不会改变。这使得它们对缓存非常友好,并且底层操作系统会很乐意将热段保留在内存中以便更快地访问。这些段包括倒排索引(用于全文搜索)和文档值(用于聚合)。
有关更多详细信息,另请参阅一般不可变数据的优点。