在删除记录时更新haystack索引而无需重新索引整个数据库
有没有办法更新整个haystack索引,而不需要重新索引整个数据库?我有一个包含260万条记录的数据库,每条记录都有相关的表。如果我执行:
python manage.py update_index --remove
我需要等几天才能完成索引,而实际上可能只有一两条记录需要重新索引。有什么解决办法吗?
更新:正如Bennylope所说,我可以使用get_updated_field来只索引新的条目。问题在于如果我删除了一条记录,我只想把那条记录从索引中移除。我该怎么做呢?
1 个回答
0
这里有两个建议:首先,可以给你的主要记录添加一个修改时间戳,这样你就能知道每条记录最后一次被修改的时间。然后,利用get_updated_field
这个方法,在你的SearchIndex
中,通过使用--age
这个标志来过滤查询结果,只显示最近更新的记录,这样在执行管理命令时会更方便。
第二个建议是实现实时更新或者排队索引,这样在记录被更新时,可以立即对单独的记录进行索引。