2010-02-08 92 views
3

在開發過程中,我用whoosh作爲後端,現在想切換到 solr。我安裝了solr,將設置更改爲 HAYSTACK_SEARCH_ENGINE和HAYSTACK_SOLR_URL。Django haystack不會添加到Solr索引。 [作品與whoosh,失敗與Solr]

現在,當我嘗試更新或重建索引時,它會失敗 Failed to add documents to Solr: [Reason: None]

所有的搜索也都是錯誤的,所有查詢返回0個結果。 這項工作,如果我改爲whoosh。但是,我有一個RealTimeSearch 索引集,並且在創建模型期間,我沒有收到關於不能向搜索索引寫入的 的警告。 (從中我假設數據被正確地寫入到Solr索引。

我可以看到,Solr的由直接到端口上運行,其中Solr的開始。

回答

11

這個錯誤通常發生在你的架構。 XML文件配置不正確。

您可以使用python manage.py build_solr_schema > schema.xml生成模式。

爲了實際已經Solr的使用它,你通常將其放置在example/solr/conf/schema.xml

最後:觀察Solr服務器的日誌輸出。在開發過程中,我通過java -jar start.jar運行,它隱式打印到我的屏幕上。否則,您的日誌將進入example/logs目錄。


此外,仔細檢查HAYSTACK_SOLR_URL。它不應該有一個結尾的斜線。

+0

在將schema.xml複製到example/solr/conf/schema.xml之後發生這種情況。我在'rebuild_index'上得到的結果是http://dpaste.de/vOkU/ – agiliq 2010-02-08 07:12:13

+0

也看起來好像它沒有打到Solr,因爲控制檯啓動時沒有新的日誌 – agiliq 2010-02-08 07:15:19

+0

是的,404沒有找到表明URL是錯誤的。 請仔細檢查您的HAYSTACK_SOLR_URL?我看起來像:http:// localhost:8983/solr – Koobz 2010-02-08 07:18:28

4

我有這個錯誤。第一個原因是我沒有重建schema.xml,但還有更多...在重建schema.xml之後,您必須重新啓動Solr。這樣做,Solr將識別模式更改並知道新的字段。

+0

謝謝,這有幫助! – 2012-03-21 00:06:42

+0

你如何重新啓動solr? – Armance 2012-11-05 16:05:00

+0

@astrocybernaute它取決於。如果你在tomcat上運行它,你可以重啓tomcat自己做'sudo service tomcat7 restart',或者如果你使用的是tomcat管理器,你可以登錄(http:// :8000/manager/html)並重新啓動它那裏。 如果你只是使用'java -jar start.jar'或類似的東西運行solr,我建議你關閉執行(CRTL-c)並重新啓動它。 – Harph 2012-11-06 00:55:27