我正在使用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禁止错误。
没有解释这么简单的事情。每次页面更改内容或创建新页面或博客帖子时,此命令也必须重新命名吗?我认为这是生产中的一个大问题。
答案 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。这非常简单。每次更新模型(即添加,更改,删除条目)时,索引都会自动更新!
希望这能帮到你!