10

我正在尝试使用 Django-haystack Beta 2.0.0 设置 Solr 3.6.0。

运行./manage.py build_solr_schemaschema.xml 并将其移动到 conf 目录后,在访问时,我收到一个与此线程http://localhost:8983/solr/admin中产生的完全一样的错误。

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 与 /example/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

我必须编辑什么文件来解决这个问题?

4

5 回答 5

7

它在类路径中找不到stopwords_en.txt文件。您应该将stopwords_en.txt文件添加到solr/conf/目录中。您可以在此处找到有关停用词的更多信息

于 2012-07-09T11:07:36.840 回答
6

更好的方法是在schema.xml中找到所有出现的stopwords_en.txt并将它们替换为lang/stopwords_en.txt

于 2013-09-14T11:35:40.220 回答
2

您必须将 stopwords_en.txt 放在路径中。创建一个文件名 stopwords_en.txt 并粘贴到 schema.xml 旁边。我希望你知道使用什么停用词过滤器......

于 2012-07-09T09:35:32.140 回答
1

要结合以上所有三个答案,您需要 stopwords_en.txt 因为它开始测试英语文本

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

停用词以三种方式影响 Solr:相关性、性能和资源利用率。

从相关性的角度来看,这些频率极高的词往往会甩掉评分算法,离开它们也不会得到很好的结果。同时,如果您删除它们,当停用词实际上很重要时,您可能会返回不好的结果。

从性能的角度来看,如果保留停用词,某些查询(尤其是短语查询)可能会非常慢。

从资源利用率的角度来看,如果保留停用词,则索引比删除它们时大得多。

如果您有磁盘空间,您可以做出一种权衡:您可以使用 CommonGramsFilter/CommonGramsQueryFilter 而不是 StopFilter。这解决了相关性和性能问题,但代价是更多的资源利用率,因为它会形成与其相邻单词的二元组停用词。

您需要做的是将位于 solr 目录的 /conf/lang 文件夹中的原始版本复制到 /conf 目录中

cp PATH/TO/solr/conf/lang/stopwords_en.txt PATH/TO/solr/conf
于 2014-10-29T13:54:57.600 回答
1

在 Solr 5 中,我遇到了同样的错误。我曾使用 Solr zookeeper cli shell 上传我的配置。我从 server/solr/configsets/basic_configs 复制了现有 solr 配置的内容,但不知何故错过了 lang 目录。

conf/lang 目录包含 stopwords_en.txt。

于 2016-02-25T23:45:25.483 回答