2010-02-08 5 views
3

Во время разработки я использовал whoosh в качестве backend, и теперь хочу переключиться на solr. Я установил solr, изменил настройки, на HAYSTACK_SEARCH_ENGINE и HAYSTACK_SOLR_URL.Столбцы Django не добавляют к индексу 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

+0

Также выглядит, если он даже не попал в Solr, поскольку в консоли не было новых журналов – agiliq

+0

Да, 404 не найдено, указывает, что URL-адрес неверен , Возможно, вы проверите свой HAYSTACK_SOLR_URL? Шахта выглядит так: http: // localhost: 8983/solr – Koobz

4

У меня была эта ошибка. Первая причина заключалась в том, что я не перестроил schema.xml, но есть что-то еще ... После того, как вы восстановите schema.xml, вы должны перезапустить Solr. Выполняя это, Solr распознает изменения схемы и узнает новые поля.

+0

Спасибо, это помогло! –

+0

как вы перезапустите solr ?? – Armance

+0

@astrocybernaute зависит. если вы используете его на tomcat, вы можете перезапустить сам tomcat, выполнив 'sudo service tomcat7 restart', или, если вы используете диспетчер tomcat, вы можете войти в систему (http: // : 8000/manager/html) и перезагрузить его там. Если вы только запускаете solr, используя 'java -jar start.jar' или что-то в этом роде, я рекомендую вам завершить выполнение (CRTL-c) и запустить его снова. – Harph