Não é possível reindexar com o aplicativo sunspot / solr in rails – Erro: Erros graves na configuração do solr

Ok, então eu tenho um aplicativo de rails simples e agora estou tentando implementar o Sunspot para resources de pesquisa. No entanto, depois de gerar o arquivo de configuração com rails g sunspot_rails: install e depois que eu iniciei o servidor e ele fez o solr-dir no meu rails app-dir e eu rodei bundle exec rake sunspot: solr: reindex I obtenha o seguinte rastreio:

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: false in null ------------------------------------------------------------- Request Data: "type:Event" 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 

Estou especialmente curioso sobre isso:

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

Por que diria em nulo? Outros posts com o mesmo problema que eu especifiquei o solr / conf / solrconfig.xml, e também, quando eu altero para false, nada mais acontece.

Se eu remover o bloco pesquisável do meu modelo, não receberei nenhum erro (mas suponho que seja porque ele não tenta fazer nada)

Eu executei o arquivo de configuração através de um validador de XML e ele diz que o nome da tag de início é ruim em 2 <-1 5 <-2 6 <90%. No entanto, mesmo se eu remover as linhas que, em seguida, fornece um XML válido, reinicie o solr e tente reindexar, ainda recebo o mesmo erro.

Estou começando a ficar desesperado aqui, então qualquer ajuda é muito apreciada!

Eu estava tendo um problema muito parecido e resolvi isso

  • parando todos os processos solr em execução
  • removendo a pasta solr
  • desligue / reinicie o computador
  • gem desinstalar todas as gemas relacionadas
  • instalação do pacote
  • começar solr
  • solde de reindex

aconteceu comigo ocasionalmente .. no meu caso foi problema solr (não mancha solar)

tente ir para

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

(dependendo do ambiente que você usa)

para ver o erro que você tem sob o servidor web solr

Eu vi a mensagem de erro java e corrigi-lo apenas com a exclusão do diretório de índice e reiniciar solr

e começou a se comportar como esperado

espero que tenha ajudado

ou você pode instalar novamente a gema. Isso funciona para mim.

Aqui está o caminho mais fácil ( não requer mexer com gemas ou reiniciar o computador ):

 rake sunspot:solr:stop 

Se você modificou o esquema, copie o conteúdo de site_root/solr/conf/schema.xml para sua área de transferência

Em seguida, exclua toda a pasta solr em site_root/solr

Agora corra:

 rake sunspot:solr:start 

Este comando irá criar e preencher novamente a pasta solr apagada.

Se você copiou schema.xml acima, abra schema.xml novamente, selecione tudo e copie o conteúdo de sua área de transferência. Salve o arquivo.

Agora corra:

 bundle exec rake sunspot:solr:reindex 

Mais especificamente, eu descobri a causa do meu problema, espero que isso ajude as almas que estavam se perguntando o que aconteceu

Primeiro, apaguei a pasta solr / data. Péssima ideia. E isso causou os erros descritos pelo cakismo.

Reiniciar, excluir a pasta solr, etc. não ajudará. Simplesmente porque há uma instância do servidor Solr em execução e ele não será interrompido mesmo com o sunspot: solr: stop. Você tem que matar essa instância por:

 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 

Depois disso, você pode prosseguir com a exclusão da pasta solr e iniciar o servidor novamente

Eu estava enfrentando mesmo problema, e finalmente eu tenho config / database.yml tem nome de database errado e, do que eu verifiquei sunspot.yml, este arquivo também tem configuração errada como endereço IP. Eu modifico ambos os arquivos do que começar a trabalhar.

Para mim, havia tanta dependência com turn off/restart the computer (não era possível reiniciar) e não funciona nada de cima (não estou tentando reiniciar). Então, minha solução de trabalho foi

  1. Vá para o diretório raiz do aplicativo.
  2. usando ps aux | grep solr ps aux | grep solr encontrar process ID solr
  3. parar o processo solr usando kill -9 4313 # para mim 4313 foi solr process id
  4. iniciar solr na rake sunspot:solr:start RAILS_ENV=staging

  5. re-indexar o solr usando o rake sunspot:solr:reindex RAILS_ENV=staging

É isso aí.

NB: Substitua o ambiente de acordo com sua necessidade