search – 如何更新Sphinx主索引和delta索引

我已经阅读了Sphinx文档和各种资源,但我对维护主索引和delta索引的过程感到困惑.如果这是正确的,请告诉我:

>有一个用last_update_time划分搜索索引的表(不是教程http://sphinxsearch.com/docs/1.10/delta-updates.html中的id)
>每15分钟更新一次增量索引.增量索引仅获取已更新的记录> LAST_UPDATE_TIME:

indexer --rotate --config /opt/sphinx/etc/sphinx.conf delta

>通过使用以下方法合并delta来每小时更新主索引:

indexer --merge main delta --merge-dst-range deleted 0 0 --rotate

预查询SQL将last_update_time更新为NOW(),后者重新分区索引

困惑:合并是否会运行预查询SQL?

>更新主索引后,立即更新增量索引以进行清理:

indexer --rotate --config /opt/sphinx/etc/sphinx.conf delta

编辑:如何删除记录甚至工作?由于增量索引将包含已删除的记录,因此只有在将delta索引合并到main之后才会从搜索查询中删除记录?

最佳答案 要处理删除,您需要查看killlist,它基本上定义了删除标准:

http://sphinxsearch.com/docs/manual-1.10.html#conf-sql-query-killlist

在一个例子中,我让我们每天早上构建我们的主要内容,然后每5分钟运行一次delta更新(包括killlist).

在合并的东西,我不确定,因为我从来没有使用它.

点赞