【问题标题】:How to rebuild_index in Django Haystack如何在 Django Haystack 中重建索引
【发布时间】:2017-03-07 23:31:20
【问题描述】:

我正在使用 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 禁止错误。

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

【问题讨论】:

  • 以下解决方案对您的问题有效吗?

标签: python django django-haystack divio


【解决方案1】:

这是因为您的 django 开发服务器没有运行

为了让两个服务器(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

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

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

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-26
    • 2013-04-22
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多