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

Why need to run delta indexing after new records and change in records

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

但我检查数据是否在没有重新索引的情况下更新。那么重新索引delta

的目的是什么

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

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

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

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