我试图抓住弹性搜索.正在阅读权威指南.
他们已经提到每次我更新文档中的内容时,更新API都会执行retrieve-change-reindex循环.我完全明白,这是因为他们说"文件是不可变的"(见本文).我在这里质疑的是为什么它首先是不可改变的.难道不存在允许更新和仅仅特定字段的索引的优势吗?这不是约束吗?
首先,最好告诉段是不可变的,而不是告诉文档是不可变的.要了解原因.您需要了解lucene的工作原理.Lucerne是一个java库,在其上构建了elasticsearch.在引擎盖下,单个分片是一个lucene实例,它可以完成文档存储和搜索的实际工作.Elasticsearch更像是基于lucene的基于分布式REST的服务器层.
在lucene中,为了实现高索引速度,我们拥有分段架构.一堆文件保存在一个段中,其中每个段是磁盘中的单个文件.由于写入操作之间的文件非常繁重,因此段不可变,以便所有后续写入转到新段.
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |