如果发生任何更新,如何在弹性搜索中停止自动重建索引?

时间:2018-01-04 06:40:38

标签: elasticsearch indexing

我在弹性搜索中有一个很大的用例,里面有数百万条记录。

我会经常更新记录,比如每小时1000条记录。

我不希望弹性搜索重新索引我的每次更新。

我计划每周重新编制索引。

任何想法如何在更新时停止自动重新索引?

或欢迎任何其他更好的建议。在此先感谢:)

1 个答案:

答案 0 :(得分:2)

Elasticsearch(ES)以下面的方式更新现有文档。   1.删​​除旧文档。   2.使用应用了更改的新文档编制索引。

根据ES文档: -

  

在Elasticsearch中,这个写作和打开的轻量级过程   新段称为刷新。默认情况下,每个分片都会刷新   每秒自动一次。这就是为什么我们说Elasticsearch   有近实时搜索:文档更改对搜索不可见   立即,但会在1秒内变得可见。

请注意,在ES将这些更改提交/刷新到磁盘缓存和磁盘之前,这些更改将不可见/可搜索,这是由软提交(es刷新间隔,默认为1秒)和硬提交(它实际上将文档写入磁盘,这可以防止它永久丢失,并且比软提交更加昂贵。

您需要确保调整ES刷新间隔,并进行适当的负载测试,因为将其设置得非常低且非常高有其自身的优缺点。

例如,设置它的时间非常短,例如1秒,如果你发生了太多的更新而不是性能损失,它可能会导致系统崩溃。同样将其设置为非常高,例如1小时意味着您现在没有NRT(接近实时搜索),并且在此期间,如果您的内存可能再次包含数百万个文档(取决于您的应用程序)并且可能导致内存错误,也承诺如此大的内存是一个非常昂贵的事情。

相关问题