如何在 Django Haystack 中 rebuild_index

How to rebuild_index in Django Haystack

我正在使用 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?

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

这么简单的东西就不解释了。每次页面更改内容或创建新页面或博客 post 时,是否也必须重新运行此命令?我认为这是生产中的一个大问题。

这是因为你的django开发服务器不是运行ning.

为了保持两个服务器 运行ning(solr 和 Django),运行 solr 在后台,然后 运行 Django 开发服务器。 因此,假设 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 开发服务器,方法是转到项目的根目录,然后 ./manage.py runserver

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

希望对您有所帮助!