如何在Django Haystack中重建_index

时间:2017-03-07 23:31:20

标签: python django django-haystack divio

我正在使用Aldryn Search - 一个使用Haystack的Django CMS插件。

我已经上下阅读了这两个文档,但我并不了解如何正确运行manage.py rebuild_index。如果我像往常一样运行它,我得到:

SolrError: Failed to connect to server at 'http://127.0.0.1:8000/update/?commit=true', are you sure that URL is correct?

所以我猜测它是因为我的服务器没有运行。但是在我的服务器运行时我无法运行此命令。 我尝试在终端中打开一个新选项卡,并在我的服务器在另一个选项卡中运行时运行该命令,我收到403禁止错误。

没有解释这么简单的事情。每次页面更改内容或创建新页面或博客帖子时,此命令也必须重新命名吗?我认为这是生产中的一个大问题。

1 个答案:

答案 0 :(得分:1)

这是因为 django开发服务器未运行

为了保持两台服务器都运行(solr和Django),在后台运行solr,然后运行Django dev服务器。 因此,假设solr服务器位于您的主目录内,则首先运行它:

cd ~/solr-version/example/

java -jar start.jar --daemon &

提示:如果你想杀死后台solr服务器:ps aux | grep java你应该得到这样的东西

username 3432 134 1.1 2431016 93196 Sl 09:52 0:06 java -jar start.jar --daemon username 3466 0.0 0.0 11744 932 S+ 09:52 0:00 grep --colour=auto java

第二列标记了进程的pid,所以为了杀死它,请执行:

kill 3432

现在您可以通过转到项目的根目录来运行Django dev服务器并./manage.py runserver

至于你的第二个问题:不是每次代码更改都不需要重新运行假设你正在使用django-haystack RealTimeSignalProcessor。这非常简单。每次更新模型(即添加,更改,删除条目)时,索引都会自动更新!

希望这能帮到你!