2017-03-07 42 views
0

我正在使用Aldryn搜索 - Django CMS使用Haystack的插件。如何在Django Haystack中重建索引

我已經閱讀了兩個文件上下,我不明白如何正確運行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

現在,您可以將您的項目的根和./manage.py runserver

關於你的第二個問題上運行的Django開發服務器:不,它並不需要每一次代碼修改重新運行假設您使用的是django-haystack RealTimeSignalProcessor,則爲。這非常非常簡單。每次更新模型(即添加,更改,刪除條目)索引都會自動更新!

希望這可以幫助你!

相關問題