2015-03-31 86 views
7

我使用django-haystack(v 2.3.1)和solr(v 5.0.0)和pysolr(v 3.0.0 )。我一直在關注tutorial,並設置了類似的myapp/search_indexes.pysearch/indexes/myapp/mymodel_text.txt文件。django-haystack:無法將文檔添加到Solr:[原因:找不到404錯誤]

./manage.py build_solr_schema > schema.xml工作正常,我已將其複製到$ SOLR_HOME/conf/schema.xml中。

當我嘗試./manage.py rebuild_index時會出現問題。首先,我被要求確認:

警告:這將在連接「默認」中將搜索索引中的所有內容刪除。
之後的選擇是通過rebuild_index命令從備份中恢復或重建。
您確定要繼續嗎? [Y/N]Ÿ

然後,它失敗:

從索引中刪除所有文件,因爲你這麼說。
無法清除Solr索引:[原因:找不到錯誤404]
刪除所有文檔。
索引6個故事
無法將文件添加到Solr:原因:錯誤404未找到]

我的連接設置爲:

#settings.py 
HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 
     'URL': 'http://127.0.0.1:8983/solr', 
    }, 
} 

如果我瀏覽到這個網址我可以請參閱solr管理頁面。我已經確定端口8983對於solr是開放的(對於Django開發服務器也是8000)。

我覺得我可能沒有提供足夠的連接信息,但還有什麼要檢查的?

UPDATE
雖然我解決了這個問題,有更多的驚喜,這是使用Solr的(v.4.7.0)代替所有固定由,因爲Django的草垛是沒有準備好Solr的5(有與此相關的一個問題,但我再也找不到它github

回答

4

釷指定核心請鍵入user366722以建議在設置中指定核心。但是,我忽略了一個更基本的步驟創建的核心!

解決方案:
創建芯,指定所述芯的名稱(例如,「默認」)和端口(例如8983):

$bin/solr create_core -c default -p 8983

然後,只需在您的草垛URL設置指定的核心(例如 '默認')的名稱:

#settings.py 
HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 
     'URL': 'http://127.0.0.1:8983/solr/default', 
    }, 
} 

完成!

現在,我得到

刪除所有文件從你的索引,因爲你這麼說。
刪除所有文件。
索引3層

UPDATE
在寫作的時候,我也切換到SOLR 4.7.0,使其工作,如大海撈針還沒有準備好Solr的5.x的

+0

bin/solr create_core -c default -p 8983 你能告訴我哪個bin?!謝謝 – 2016-08-29 14:29:24

+0

哪個bin取決於你安裝的位置 – ZG101 2017-06-04 00:22:27

1

有同樣的問題,並找到了答案:https://stackoverflow.com/a/29833997/366722 你需要在URL

+0

你使用的是哪個版本的solr?顯然[solr.xml文件的結構已經改變](https://wiki.apache.org/solr/Solr.xml%204.4%20and%20beyond):「簡而言之,[從solr v5.0開始] 已被自動發現內核所取代。「當時我放棄了,我不確定django-haystack是否能夠爲solr的v5生成兼容的solr.xml文件(即沒有0​​)。 – ZG101 2015-04-23 23:44:08

+0

這是正確的。我正在使用5.1.0並使用一個使用4.x的乾草堆舊文檔進行設置。 – siavach 2015-04-24 15:17:26

相關問題