2012-07-08 156 views
10

我試圖用Django-haystack Beta 2.0.0來設置Solr 3.6.0。Solr找不到資源stopwords_en.txt

運行./manage.py build_solr_schema並將schema.xml移動到conf目錄後,訪問http://localhost:8983/solr/admin後,收到的錯誤與this thread中產生的錯誤完全相同。

org.apache.solr.common.SolrException: No cores were created, please check the logs for errors

java.lang.RuntimeException: Can't find resource 'stopwords_en.txt' in classpath or 'solr/./conf/', cwd=/home/randall/startupsearch_live/apache-solr-3.6.0/example

在螺紋的底部,用戶提及schema.xml中必須進行編輯,以匹配stopwords_en.txt到/示例/ solr的/ CONF /目錄,我做到了無論是通過符號鏈接還是將所有stopwords.txt實例編輯到生成的schema.xml文件中的/solr/conf/stopwords_en.txt。然而,同樣的問題仍然存在,給人一種略微不同的輸出:

java.lang.RuntimeException: Can't find resource '/solr/conf/stopwords_en.txt' in classpath or 'solr/./conf/', cwd=/home/randall/startupsearch_live/apache-solr-3.6.0/example

,我必須修改什麼文件來解決這個問題?

回答

7

它無法找到stopwords_en.txt文件中的類路徑。您應該將stopwords_en.txt文件添加到solr/conf/目錄中。你可以找到關於禁用詞here.

+1

爲我工作...!+ 1 – mcacorner 2014-10-10 06:24:36

2

您必須在路徑中放置stopwords_en.txt。 製作文件名stopwords_en.txt並粘貼到schema.xml旁邊。 我希望你知道什麼是禁用詞過濾器用於.....

6

一個更好的辦法是找到stopwords_en.txt中出現的所有schema.xml中替換它們朗/ stopwords_en.txt

1

要合併的所有詳細信息上述三個答案,你需要的stopwords_en.txt,因爲它開始測試英語語言文本

http://wiki.apache.org/solr/LanguageAnalysis#Stopwords

停用詞會以三種方式影響Solr:相關性,性能和資源利用率。

從相關性的角度來看,這些極高頻率的術語 傾向於甩掉評分算法,並且如果您離開它們,結果將不會很好。與此同時,如果您刪除它們,那麼在停用詞非常重要時,您可能會返回錯誤結果 。

從性能角度來看,如果您保留停用詞,某些查詢 (特別是詞組查詢)可能會非常緩慢。

從資源利用率的角度來看,如果您保留停用詞, 索引比刪除它們要大得多。

如果您有磁盤空間,您可以進行一種權衡:您可以使用 CommonGramsFilter/CommonGramsQueryFilter而不是StopFilter。這個 解決了相關性和性能問題,甚至犧牲了更多的資源利用率,因爲它將形成停用詞 與它們相鄰的詞的大字。

你需要做的就是複製位於您的Solr目錄的/ conf目錄/郎文件夾中的原始版本逼到/ conf目錄

cp PATH/TO/solr/conf/lang/stopwords_en.txt PATH/TO/solr/conf 
1

在Solr的5我得到了同樣的錯誤。我曾使用Solr zookeeper cli shell來上傳我的配置。我從server/solr/configsets/basic_configs複製了現有solr配置的內容,但我不知何故錯過了lang目錄。

conf/lang目錄包含stopwords_en.txt。

0

我有同樣的問題,事實證明,當我創建我的stopwords_en.txt文件時,我意外地創建了stopwords_en.txt.txt文件。重新創建它作爲正確的.txt文件解決了問題