Не удается переиндексировать с помощью sunspot / solr в приложении rails - Ошибка: серьезные ошибки в конфигурации solr - PullRequest
8 голосов
/ 14 марта 2012

Хорошо, у меня есть простое приложение для рельсов, и сейчас я пытаюсь реализовать солнечное пятно для возможностей поиска. Однако после того, как я сгенерировал файл конфигурации с rails g sunspot_rails: install, и после того, как я запустил сервер, и он сделал solr-dir в моем app-dir rails, и я запустил bundle exec rake sunspot: solr: reindex I получить следующий след:

cakism@saraswati:~/railscode/calendar$ bundle exec rake sunspot:solr:reindex --trace
** Invoke sunspot:solr:reindex (first_time)
** Invoke sunspot:reindex (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute sunspot:reindex
Skipping progress bar: for progress reporting, add gem 'progress_bar' to your Gemfile
rake aborted!
RSolr::Error::Http - 500 Internal Server Error
Error: Severe errors in solr configuration.

Check your log files for more detailed information on what may be wrong.

If you want solr to continue after configuration errors, change:

 <abortOnConfigurationError>false</abortOnConfigurationError>

in null

-------------------------------------------------------------

Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:Event</query></delete>"

Backtrace: /var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:230:in `adapt_response'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:167:in `execute'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:161:in `send_and_receive'
(eval):2:in `post'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:67:in `update'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:131:in `delete_by_query'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/indexer.rb:55:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `each'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:230:in `adapt_response'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:167:in `execute'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:161:in `send_and_receive'
(eval):2:in `post'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:67:in `update'
/var/lib/gems/1.8/gems/rsolr-1.0.7/lib/rsolr/client.rb:131:in `delete_by_query'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/indexer.rb:55:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `each'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session.rb:181:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot.rb:464:in `remove_all'
/var/lib/gems/1.8/gems/sunspot_rails-1.3.0/lib/sunspot/rails/searchable.rb:178:in `solr_remove_all_from_index'
/var/lib/gems/1.8/gems/sunspot_rails-1.3.0/lib/sunspot/rails/searchable.rb:197:in `solr_reindex'
/var/lib/gems/1.8/gems/sunspot_rails-1.3.0/lib/sunspot/rails/tasks.rb:54
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/class_set.rb:16:in `each'
/var/lib/gems/1.8/gems/sunspot-1.3.0/lib/sunspot/class_set.rb:16:in `each'
/var/lib/gems/1.8/gems/sunspot_rails-1.3.0/lib/sunspot/rails/tasks.rb:53
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/var/lib/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/var/lib/gems/1.8/bin/rake:19:in `load'
/var/lib/gems/1.8/bin/rake:19
Tasks: TOP => sunspot:solr:reindex => sunspot:reindex

Мне особенно любопытно:

If you want solr to continue after configuration errors, change:

 <abortOnConfigurationError>false</abortOnConfigurationError>

in null

С чего бы это было сказано в нуле? Другие сообщения с той же проблемой, что и я, указали solr / conf / solrconfig.xml, а также, когда я изменяю его на false, больше ничего не происходит.

Если я удаляю доступный для поиска блок из моей модели, я не получаю никакой ошибки (но я полагаю, что это потому, что он ничего не пытается сделать)

Я запустил файл конфигурации через валидатор XML, и он говорит, что это неверное имя начального тега при 2 <-1 5 <-2 6 <90%. Однако даже если я удаляю строки, которые затем дают действительный XML, перезапускает solr и пытается переиндексировать, я все равно получаю ту же ошибку. </p>

Я начинаю впадать в отчаяние, поэтому любая помощь очень ценится!

Ответы [ 7 ]

11 голосов
/ 21 декабря 2012

У меня была очень похожая проблема, и я решил ее путем

  • , остановив все запущенные процессы solr
  • , удалив папку solr
  • , выключив / перезагрузив компьютер
  • драгоценный камень удалить все связанные драгоценные камни
  • установить комплект
  • запустить solr
  • reindex solr
4 голосов
/ 14 мая 2012

это случалось со мной время от времени .. в моем случае это была солнечная (не солнечная) проблема

попробуйте перейти на

http://localhost:8982/solr/admin

or http://localhost:8983/solr/admin

or http://[your.domain]:8983/solr/admin

(в зависимости от того, какую среду вы используете)

чтобы узнать, какая ошибка у вас под веб-сервером solr

я увидел сообщение об ошибке java и исправил его, просто удалив каталог индекса и перезапустив solr

и он начал вести себя как ожидалось

надеюсь, это помогло

2 голосов
/ 27 августа 2013

Вот простой способ ( не требует возиться с драгоценными камнями или перезагружать компьютер ):

rake sunspot:solr:stop

Если вы изменили схему, скопируйте содержимое site_root/solr/conf/schema.xml в буфер обмена

Затем удалите всю папку Solr в site_root/solr

Теперь запустите:

rake sunspot:solr:start

Эта команда создаст и повторно заполнит удаленную папку Solr.

Если вы скопировали schema.xml выше, снова откройте schema.xml, выберите все и скопируйте содержимое буфера обмена. Сохраните файл.

Теперь запустите:

bundle exec rake sunspot:solr:reindex
2 голосов
/ 22 ноября 2012

или вы можете переустановить драгоценный камень.Это работает для меня.

1 голос
/ 12 июля 2013

Более конкретно, я выяснил причину своей проблемы, надеюсь, это поможет любым душам, которым было интересно, что случилось

Сначала я удалил папку solr / data. Плохая идея. И это вызвало ошибки, описанные cakism.

Перезапуск, удаление папки Solr и т. Д. Не помогут. Просто потому, что запущен экземпляр сервера Solr, и он не будет остановлен даже с помощью sunspot: solr: stop. Вы должны убить этот экземпляр:

rake sunspot:solr:stop # stop server
ps -A | grep solr      # you'll see the [PID] of the solr server
kill [PID]             # replace with the [PID] from above to completely kill the solr instance

После этого вы можете продолжить удаление папки solr и снова запустить сервер

0 голосов
/ 22 февраля 2016

Для меня было так много зависимостей с turn off/restart the computer (не было возможности перезапустить) и не работает ничего сверху (я не пытаюсь с перезапуском). Итак, мое рабочее решение было

  1. Перейдите в корневой каталог приложения.
  2. с использованием ps aux | grep solr find solr process ID
  3. остановите процесс solr, используя kill -9 4313 # для меня 4313 был идентификатор процесса solr
  4. начать работу над постановкой rake sunspot:solr:start RAILS_ENV=staging

  5. переиндексировать solr с использованием rake sunspot:solr:reindex RAILS_ENV=staging

Вот и все.

N.B: Замена среды в соответствии с вашими потребностями

0 голосов
/ 19 июня 2015

Я столкнулся с той же проблемой, и, наконец, я получил config / database.yml с неправильным именем базы данных, и, чем я проверял sunspot.yml, этот файл также имеет неправильную конфигурацию, такую ​​как IP-адрес.Я изменяю оба файла, чем он начинает работать.

...