为什么需要在新记录和记录更改后运行增量索引

问题描述 投票:0回答:1

根据我在delta索引中的搜索和理解,当我们添加新记录或对记录进行更改时,我们需要重新索引sphinx以显示数据,否则它将不会显示。

但我检查数据是否正在更新而无需重新索引。那么重新索引delta的目的是什么

ruby-on-rails sphinx thinking-sphinx delta
1个回答
1
投票

使用Thinking Sphinx,完整的重新索引与所有索引进行重新处理(通过rake ts:indexrake Ts:rebuild)以及处理单个索引之间存在区别。

启用增量索引后,意味着在更改记录或添加新记录后,将自动处理给定模型的增量索引。这可以作为标准回调过程的一部分(当使用:delta => true时)或通过后台工作者(Sidekiq,DelayedJob等)完成,如果你正在使用适当的delta gem。

所有这些意味着您不需要对所有索引运行完全重新处理以使更改存在 - 自动重新处理增量索引,并且记录的更改将反映在Sphinx中。

值得注意的一点是,发生的变化越多,delta索引越大,因此处理的速度越慢。因此,仍然需要定期(每小时?每天?取决于您的应用程序)完整的重新索引,以保持增量处理时间快。

© www.soinside.com 2019 - 2024. All rights reserved.