Sphinx,更新已删除条目的索引

时间:2011-06-12 18:01:07

标签: mysql indexing sphinx

我正在学习Sphinx,现在我了解如何设置和更新索引。问题是删除条目。我计划使用delta索引,但看起来它们不会更新已删除的行,所以如果在我的数据库中删除了一行,那么在完整索引发生之前,该条目仍然可以在网站上的搜索中显示;但是,完整的索引每天只会发生一次。

那么如何更新索引以删除已删除的条目?我读到了使用杀戮列表,但不明白我将如何使用它。我是否在delta指数中使用它?是否有使用杀死列表的配置示例?手册显示了一个示例,但我不知道它将如何在配置文件中使用。

修改

这是个主意吗?您在配置中使用sql_query_killlist来查询不包含在索引中的所有ID?所以在我的代码中,如果有人想要删除一个故事,而不是删除该行本身,我会有一个标记为“已删除”,然后使用sql_query_killlist查询已删除字段设置为1的所有故事?然后运行某种类型的cron作业会在以后删除行吗?

1 个答案:

答案 0 :(得分:0)

在delta索引中,您可以在kill-list中收集文档ID。它是delta索引中唯一的id列表,它不会触及你的主索引。 而是将您的索引查询为主要增量 - 增量索引会抑制主要索引中的所有文档,这些文档在kill-list中显示。 但是,在将main与delta合并时,文档确实被删除了。