Sphinx 斯芬克斯旋转不删除旧记录?

Sphinx 斯芬克斯旋转不删除旧记录?,sphinx,Sphinx,我使用Mysql编辑器从表中删除了记录 此表以前由Sphinx编制索引(使用索引器--rotate) 当我再次使用索引器--rotate重新旋转时,仍然可以查询旧记录 为了测试是否实际遵守了索引,我 增加了一项新记录 修改了一个旧的 我重新旋转,新的/修改的记录如预期的那样,但在SphinxQL查询期间仍能找到已删除的记录 最后,我在索引中添加了一个Where条件,这样它只会索引那些Add=1的记录 然后我用原始ID添加回旧记录,并设置Add=0 现在,在SphinxQL查询期间找不到该记录

我使用Mysql编辑器从表中删除了记录

此表以前由
Sphinx
编制索引(使用
索引器--rotate

当我再次使用
索引器--rotate重新旋转时,仍然可以查询旧记录

为了测试是否实际遵守了索引,我

  • 增加了一项新记录
  • 修改了一个旧的
我重新旋转,新的/修改的记录如预期的那样,但在SphinxQL查询期间仍能找到已删除的记录

最后,我在索引中添加了一个
Where
条件,这样它只会索引那些
Add=1
的记录

然后我用原始ID添加回旧记录,并设置
Add=0

现在,在SphinxQL查询期间找不到该记录

在此期间,我阅读了各种解决方案,例如索引可以查询的辅助“已删除记录”表,但这似乎是一个困难且容易出错的解决方案

难道没有一种更简单的方法让Sphinx仅仅用现有记录重新创建索引吗


既然我每天做一次轮换,那么删除索引然后轮换它会起作用吗?我想测试一下,但因为斯芬克斯太挑剔了,所以我更愿意在打破任何东西之前先问一下。

Franky(查看编辑后的问题!)-我认为这只是测试中的一个错误。建议你再次尝试同样的程序,你不会感到惊讶,你会发现它的工作。A--在索引上旋转,完全从头开始重建索引,不引用旧索引。如果仍然可见,可能是您无意中查看了缓存的查询?用Add=0而不是delete对其进行过滤,这一事实证实了该行将从sphinx中消失。@barryhunter我试过几次了。如果我使用可以查询的新记录进行旋转,那么我知道新记录正在使用
--rotate
进行正确旋转。但是,无论我更改/添加记录和旋转多少次,并成功地看到它们,旧记录仍然存在(id、名称等)。用Add=0将其添加回(即我删除的原始id)会使其消失,这一事实使我相信它实际上并没有被删除,而是以某种方式遵守Add=0。我将重新测试并报告,但到目前为止,这是正在发生的事情。