使用Django和Celery更新Haystack搜索索引

31 投票
4 回答
8779 浏览
提问于 2025-04-16 08:04

在我的Django项目中,我使用了Celery。我把一个命令从定时任务(crontab)改成了周期性任务,现在运行得很好,但它只是调用了一个模型中的方法。我想知道能不能从周期性任务中更新我的Haystack索引?有没有人做过这个?

/manage.py update_index

这是Haystack文档中更新索引的命令,但我不太确定怎么从任务中调用它。

4 个回答

7

我觉得这个软件包非常棒,是一个简单易用的插件应用,可以通过celery来提供haystack索引。我在几个项目中用过它。

12

关于haystack的2.0.0 beta版本,这段代码应该可以正常运行:

from haystack.management.commands import update_index
update_index.Command().handle(using='default')
30

最简单的方法可能就是直接从Python里运行管理命令,然后在你的任务中执行它。

from haystack.management.commands import update_index
update_index.Command().handle()

撰写回答