无法重新索引太阳黑子SOLR - 错误 - RSolr ::错误:: Http - 500内部服务器错误

时间:2012-11-12 09:07:18

标签: ruby-on-rails ruby solr sunspot

每次我尝试重新索引使用...

  

rake sunspot:solr:reindex

这些错误消息始终显示:

  

错误 - RSolr :: Error :: Http - 500内部服务器错误 - 正在重试...   错误 - RSolr ::错误:: Http - 500内部服务器错误 - 忽略...   错误 - RSolr ::错误:: Http - 500内部服务器错误 - 正在重试...   错误 - RSolr ::错误:: Http - 500内部服务器错误 - 忽略...

我试图停止然后开始使用...

rake sunspot:solr:stop
rake sunspot:solr:start

但什么都没发生。

现在,每当我尝试在localhost中运行我的应用程序时......

这是错误:

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:Trip</query></delete>"

比终端更详细的错误消息。

我尝试了大量的网络解决方案,例如将Abort Configuration设置为false,但没有任何反应。

错误仍然存​​在。

任何工作都将受到赞赏。

9 个答案:

答案 0 :(得分:34)

解决方案:

  1. rake sunspot:solr:stop
  2. rm -rvf solr(删除/ solr目录)
  3. rake sunspot:solr:start
  4. rake sunspot:solr:reindex
  5. 享受

答案 1 :(得分:6)

基于@professormeowingtons提供的答案,在生产中对我有用的是:

  1. $ rake sunspot:solr:stop RAILS_ENV=production
  2. $ rm -rvf solr # delete your /solr directory
  3. $ sudo reboot # reboot the machine RAILS_ENV=production
  4. $ rake sunspot:solr:start RAILS_ENV=production
  5. $ rake sunspot:solr:reindex RAILS_ENV=production

答案 2 :(得分:4)

参考@professormeowingtons,您不必删除整个solr目录,因为您可能不想删除schema.xmlsolrconfig.xml等solr配置。您收到错误的原因可能是因为索引已损坏,您可以执行的操作是删除&#39; solr / env&#39;即solr/development或/和solr/data/development并重新启动solr服务器。

 1. rake sunspot:solr:stop

 2. rm -rf solr/development (Delete your solr/development directory)

 3. rm -rf solr/data/development

 4. rake sunspot:solr:start

 5. rake sunspot:solr:reindex

如果问题仍然存在,请回滚最近的更改,因为您可能添加了一些错误的配置。

答案 3 :(得分:1)

我通过重新启动电脑来完成这项工作。我猜有一个solr实例被错误地停止了: - ?

答案 4 :(得分:1)

本质是重置每个太阳黑子solr部分,可能会出现问题。

删除完整的solr目录。 这会删除完整的solr目录 - 双重检查!

rm -rf solr

删除太阳黑子solr配置文件config/sunspot.yml

rm config/sunspot.yml

停止太阳黑子solr。

bundle exec rake sunspot:solr:stop

检查太阳黑子solr是否不再运行。如果有solr个进程正在运行,请注意 PID

ps aux | grep solr

通过 PID 手动终止solr进程。仅当bundle exec rake sunspot:solr:stop未成功时才需要此命令。

kill -9 PID # (fully turns off solr - double check `ps aux|grep solr`)

删除您的数据库,仔细检查您是否确定!然后重新创建数据库并从迁移文件中恢复架构。

bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate

创建一个新的太阳黑子配置config/sunspot.yml

rails generate sunspot_rails:install

重新创建solr目录

bundle exec rake sunspot:solr:start

创建新的solr索引

bundle exec rake sunspot:reindex

最后用种子数据重新填充空数据库。

bundle exec rake db:seed

答案 5 :(得分:0)

这意味着您的配置文件中存在问题,并且solr无法启动。检查太阳黑子日志。

答案 6 :(得分:0)

通过localhost检查您的太阳黑子服务器:8982(depelopment)。如果你得到像控制台一样的错误。再次尝试localhost:8983(生产)。对于我的情况,端口8983工作正常,我在rails / config / sunspot.yml更改sunspot配置到端口:8983。并解决了。

答案 7 :(得分:0)

将Rsolr gem升级到最新版本1.0.10.pre1,这对我有用。

现在我能够对我的模型进行重新索引,一切看起来都很好,在生产中。

答案 8 :(得分:0)

对于那些在Heroku制作中使用Websolr并在重建索引时遇到此错误的人:

请记住,您必须在Websolr管理GUI中手动上传schema.xml,在&#34; 高级配置&#34;查看索引时的选项卡。 这是直接链接:https://websolr.com/slices/<index_uri>/schema

您可以从<index_uri>运行heroku config并从您的最后一部分获取http://index.websolr.com/solr/<index_uri> WEBSOLR_URL看起来像这样:schema.xml

我遇到了这个错误,因为我错误地认为Websolr会使用我提交给git的<appname>/solr/conf并将其与所有其他{{1}}文件一起推送到heroku。