在sphinx中使用main和delta索引

10 php sphinx thinking-sphinx

我在我的网站上搜索全文搜索到sphinx.我将使用SphinxSE来执行搜索.

我创建了2个索引,如手册中所述:http://www.sphinxsearch.com/docs/manual-0.9.9.html#live-updates

它似乎工作,并在其自己的索引中索引不同的东西,但我有点困惑我应该如何处理索引更新,合并和重建.

我理解的方式是我每隔5分钟左右运行"indexer delta --rotate",这会向索引添加新的提交.然后每天一次,我会通过运行"indexer main delta --rotate"将delta索引合并到主索引中.然后一个月左右,我将运行"indexer --all"来重建所有索引.

我这样做是对,还是我错过了什么?

小智 2

--rotate 只会在 tmp 中构建索引(需要空间磁盘),并在完成后切换 + 重新启动 searchd。

对于delta,需要使用预查询来计算主索引id低于该限制的“限制”max(id),而delta则达到该限制。

如果你有时间戳(如果可能的话有索引)你可以使用它

main -> where timefile < Today() delta -> where timefile >= Today()