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

标签 mysql indexing sphinx

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

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

编辑

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

最佳答案

在您的增量索引中,您可以在 kill-list 中收集文档 ID。它在您的增量索引中的唯一 id 列表不会触及您的主索引。 相反,您将索引查询为 main,delta - delta 索引会抑制 kill-list 中标识的主索引中的所有文档。 然而,在合并 main 和 delta 时确实删除了文档。

关于mysql - Sphinx,更新已删除条目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323573/

相关文章:

php - 准备 MySQL INSERT INTO ON DUPLICATE KEY UPDATE 的语法是否正确?

php - 使用 PHP 的下拉列表中的第二个下拉列表

MySQL 合并 2 行中的金额

jsf - primefaces tabView activeIndex 问题

mysql - 最大化超长数字的数据库性能

xml - Solr DataImportHandler 不适用于 XML 文件

linux - 如何解决 Sphinx 搜索依赖问题?

mysql - sphinx 的性能比 MySQL 默认的全文搜索高多少?

mysql - 帮助设置 sphinx

mysql - 不同数据库中字符串的压缩