Не удается переиндексировать с помощью sunspot / solr в приложении rails - Ошибка: серьезные ошибки в конфигурации solr
Итак, у меня есть простое приложение rails, и теперь я пытаюсь реализовать солнечное пятно для возможностей поиска. Однако, после того, как я сгенерировал файл конфигурации с 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 и пытаюсь переиндексировать, я все равно получаю ту же ошибку.
Я начинаю отчаяться здесь, поэтому любая помощь очень ценится!
7 ответов
У меня была очень похожая проблема, и я решил ее
- остановка всех запущенных процессов solr
- удаление папки solr
- выключить / перезагрузить компьютер
- драгоценный камень удалить все связанные драгоценные камни
- комплектация
- начать Solr
- переиндекс солр
Это случалось со мной время от времени.. в моем случае это была солнечная (не солнечная) проблема
попытаться пойти в
http://localhost:8982/solr/admin
or http://localhost:8983/solr/admin
or http://[your.domain]:8983/solr/admin
(в зависимости от того, какую среду вы используете)
чтобы увидеть, какая ошибка у вас под веб-сервером Solr
я увидел сообщение об ошибке java и исправил его, просто удалив каталог index и перезапустив solr
и он начал вести себя как ожидалось
надеюсь, это помогло
Или вы можете переустановить драгоценный камень. Это работает для меня.
Вот простой способ (не требует возиться с драгоценными камнями или перезагружать компьютер):
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
Более конкретно, я выяснил причину своей проблемы, надеюсь, это поможет любым душам, которые задавались вопросом, что случилось
Сначала я удалил папку 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 и снова запустить сервер.
Для меня было так много зависимости от turn off/restart the computer
(Не было возможности перезагрузить) и не работает ничего сверху (я не пытаюсь с перезагрузкой). Итак, мое рабочее решение было
- Перейдите в корневой каталог приложения.
- с помощью
ps aux | grep solr
найти решениеprocess ID
- Остановить Solr процесс с помощью
kill -9 4313
# для меня 4313 был идентификатор процесса solr начать Solr на постановке
rake sunspot:solr:start RAILS_ENV=staging
переиндексировать Solr с помощью
rake sunspot:solr:reindex RAILS_ENV=staging
Вот и все.
NB: заменить среду в соответствии с вашими потребностями
Я столкнулся с той же проблемой, и, наконец, я получил config/database.yml имеет неправильное имя базы данных, и, чем я проверил sunspot.yml, этот файл также имеет неправильную конфигурацию, как IP-адрес. Я изменяю оба файла, чем он начинает работать.