在删除记录时更新haystack索引而无需重新索引整个数据库

2 投票
1 回答
912 浏览
提问于 2025-04-17 21:03

有没有办法更新整个haystack索引,而不需要重新索引整个数据库?我有一个包含260万条记录的数据库,每条记录都有相关的表。如果我执行:

 python manage.py update_index --remove

我需要等几天才能完成索引,而实际上可能只有一两条记录需要重新索引。有什么解决办法吗?

更新:正如Bennylope所说,我可以使用get_updated_field来只索引新的条目。问题在于如果我删除了一条记录,我只想把那条记录从索引中移除。我该怎么做呢?

1 个回答

0

这里有两个建议:首先,可以给你的主要记录添加一个修改时间戳,这样你就能知道每条记录最后一次被修改的时间。然后,利用get_updated_field这个方法,在你的SearchIndex中,通过使用--age这个标志来过滤查询结果,只显示最近更新的记录,这样在执行管理命令时会更方便。

第二个建议是实现实时更新或者排队索引,这样在记录被更新时,可以立即对单独的记录进行索引。

撰写回答