elasticsearch 如果发生任何更新,如何停止弹性搜索中的自动重新索引?,elasticsearch,indexing,elasticsearch,Indexing" /> elasticsearch 如果发生任何更新,如何停止弹性搜索中的自动重新索引?,elasticsearch,indexing,elasticsearch,Indexing" />

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

elasticsearch 如果发生任何更新,如何停止弹性搜索中的自动重新索引?,elasticsearch,indexing,elasticsearch,Indexing,我有一个elasticsearch的大用例,其中有数百万条记录 我会经常更新记录,比如说每小时更新1000条记录 我不希望弹性搜索为我的每个更新重新编制索引 我计划每周对其重新编制索引 知道如何在更新时停止自动重新索引吗 或者任何其他更好的建议都是受欢迎的。提前感谢:)Elasticsearch(ES)以以下方式更新现有文档。 1.删除旧文档。 2.为新文档编制索引,并对其应用更改 根据ES文件:- 在Elasticsearch中,编写和打开 新段称为刷新。默认情况下,每个碎片都会刷新 每秒钟自

我有一个elasticsearch的大用例,其中有数百万条记录

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

我不希望弹性搜索为我的每个更新重新编制索引

我计划每周对其重新编制索引

知道如何在更新时停止自动重新索引吗

或者任何其他更好的建议都是受欢迎的。提前感谢:)

Elasticsearch(ES)以以下方式更新现有文档。 1.删除旧文档。 2.为新文档编制索引,并对其应用更改

根据ES文件:-

在Elasticsearch中,编写和打开 新段称为刷新。默认情况下,每个碎片都会刷新 每秒钟自动一次。这就是为什么我们说弹性搜索 具有近实时搜索功能:文档更改对搜索不可见 立即,但将在1秒内可见

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

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


例如,将其设置得非常少(例如1秒),如果发生的更新太多,则会影响性能,可能会使系统崩溃。另外,将其设置得非常高(例如1小时)意味着您现在没有NRT(近实时搜索),在这段时间内,如果您的内存可能再次包含数百万个文档(取决于您的应用程序),并可能导致内存不足错误,那么使用如此大的内存进行提交也是一件非常昂贵的事情

是的,它是正确的,但它只是重新索引了1个文档,而不是所有完整的索引。我想你想说的是“刷新”?刷新操作是使更新可见的操作。有一个
refresh\u interval
可以为索引设置。@vishnuraganathan,正如archit所指出的,如果您想控制提交的频率,这实际上是将内存中的索引刷新到磁盘,然后在搜索时只看到更改。然后你可以通过刷新来完成。但是你需要调整它。@VishnuRanganathan,我看不出你为什么要将更新保留一周,而且每小时1k更新实际上比不上更新,除非你有非常小的es群集。@VishnuRanganathan,只有1个文档会被更新。