Solr не может найти ресурс stopwords_en.txt

Я пытаюсь установить Solr 3.6.0 с Django-haystack Beta 2.0.0.

После запуска ./manage.py build_solr_schema и перемещения schema.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 в /solr/conf/stopwords _en.txt в сгенерированном файле schema.xml. Тем не менее, эта же ошибка сохраняется, давая несколько отличный результат:

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

Какой файл нужно изменить для устранения этой проблемы?

Ответ 1

Он не может найти файл stopwords_en.txt в пути к классам. Вы должны добавить файл stopwords_en.txt в каталог solr/conf/. Вы можете найти дополнительную информацию о секундомерах здесь.

Ответ 2

Лучше всего найти все вхождения stopwords_en.txt в schema.xml и заменить их на lang/stopwords_en.txt

Ответ 3

Вы должны положить stopwords_en.txt в путь. Создайте имя файла stopwords_en.txt и вставьте рядом с schema.xml. Надеюсь, вы знаете, какой фильтр затвора используется.....

Ответ 4

Чтобы объединить все три вышеупомянутых ответа, вам понадобится файл stopwords_en.txt, когда он начнет тестирование текста на английском языке

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

Стоп-слова влияют на Solr тремя способами: релевантность, производительность и использование ресурсов.

С точки зрения релевантности эти чрезвычайно высокочастотные термины как правило, отбрасывают алгоритм подсчета очков, и вы не получите очень хорошее результаты, если вы оставите их. В то же время, если вы удалите их, вы могут возвращать плохие результаты, когда на самом деле важно время остановки.

С точки зрения производительности, если вы держите стоп-слова, некоторые запросы (особенно фразовые запросы) могут быть очень медленными.

С точки зрения использования ресурсов, если вы сохраняете стоп-слова, индекс намного больше, чем если бы вы их удалили.

Один компромисс, который вы можете сделать, если у вас есть дисковое пространство: вы можете использовать CommonGramsFilter/CommonGramsQueryFilter вместо StopFilter. Эта решает проблемы релевантности и производительности, за счет больше использования ресурсов, поскольку он будет формировать bigrams стоп-слов к их смежным словам.

Что вам нужно сделать, это скопировать исходную версию, расположенную в папке /conf/lang вашего каталога solr, в каталог /conf

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

Ответ 5

В Solr 5 у меня такая же ошибка. Я использовал оболочку CLI Solr zookeeper для загрузки моей конфигурации. Я скопировал содержимое существующей конфигурации solr с сервера /solr/configsets/basic _configs, но я как-то пропустил каталог lang.

Каталог conf/lang содержит stopwords_en.txt.

Ответ 6

У меня была такая же проблема, и выяснилось, что когда я был создан файл stopwords_en.txt, я случайно создал файл stopwords_en.txt.txt. Воссоздание его как правильного .txt файла позволило решить проблему