问题
Everytime i try to reindex using...
rake sunspot:solr:reindex
These error messages always show:
Error - RSolr::Error::Http - 500 Internal Server Error - retrying... Error - RSolr::Error::Http - 500 Internal Server Error - ignoring... Error - RSolr::Error::Http - 500 Internal Server Error - retrying... Error - RSolr::Error::Http - 500 Internal Server Error - ignoring...
I tried to stop then start using...
rake sunspot:solr:stop
rake sunspot:solr:start
But nothing happened.
And now everytime I try to run my app in localhost...
This is the error:
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>"
A more detailed error message than the one I had in terminal.
I tried plenty of solutions from the net like setting Abort Configuration to false, but nothing happened.
The error still persists.
Any work around will be appreciated.
回答1:
The solution:
rake sunspot:solr:stop
rm -rvf solr
(Delete your /solr directory)rake sunspot:solr:start
rake sunspot:solr:reindex
Enjoy
回答2:
Based on the answer provided by @professormeowingtons, what worked for me in production is the following:
$ rake sunspot:solr:stop RAILS_ENV=production
$ rm -rvf solr # delete your /solr directory
$ sudo reboot # reboot the machine RAILS_ENV=production
$ rake sunspot:solr:start RAILS_ENV=production
$ rake sunspot:solr:reindex RAILS_ENV=production
回答3:
With reference to @professormeowingtons, you don't have to delete entire solr directory as you might not want to delete your solr configurations like schema.xml
and solrconfig.xml
. The reason you are getting error might be because of corrupted indexes, what you can do is delete 'solr/env' i.e. solr/development
or/and solr/data/development
and restart solr server.
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
If problem still persists, rollback your recent changes because you might have added some wrong configurations.
回答4:
I've got this working by restarting my PC. I guess there was a solr instance incorrectly stopped :-?
回答5:
This means there is a problem in your config file and solr couldn't start. Check the sunspot logs.
回答6:
Check your sunspot server by localhost:8982 (depelopment). if you get same error like console. try again by localhost:8983 (production). for my case, port 8983 is work fine and I change sunspot config at rails/config/sunspot.yml to port :8983. and solved.
回答7:
Upgrade Rsolr gem to latest version, 1.0.10.pre1, that worked for me.
Now I was able to reindex my models, and everything seems fine, in production that is.
回答8:
For those of you that are using Websolr in Heroku production and getting this error when reindexing:
Remember that you have to upload your schema.xml manually in the Websolr admin GUI, under the "Advanced Configuration" tab when viewing your index.
Here's the direct link: https://websolr.com/slices/<index_uri>/schema
You can get the <index_uri>
from running heroku config
and getting it from the last part of your
WEBSOLR_URL that looks like this: http://index.websolr.com/solr/<index_uri>
I ran into this error because I mistakenly assumed that Websolr would just use the schema.xml
that I committed to git and pushed to heroku together with all the other <appname>/solr/conf
files.
回答9:
The essence is to reset every sunspot solr part, that may occur problems.
Delete the complete solr
directory. This deletes the complete solr directory for sure - double check!
rm -rf solr
Delete the sunspot solr configuration file config/sunspot.yml
.
rm config/sunspot.yml
Stop sunspot solr.
bundle exec rake sunspot:solr:stop
Check if sunspot solr is no longer running. If there are solr
processes running note there PID
ps aux | grep solr
Manually kill the solr processes by PID. This command is only needed if bundle exec rake sunspot:solr:stop
wasn't successful.
kill -9 PID # (fully turns off solr - double check `ps aux|grep solr`)
Delete your database, double check if you really sure! Then recreate the database and restore the schema from the migration files.
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate
creates a new sunspot configuration config/sunspot.yml
.
rails generate sunspot_rails:install
recreates the solr directory
bundle exec rake sunspot:solr:start
create a new solr index
bundle exec rake sunspot:reindex
Finally refill the empty database with your seed data.
bundle exec rake db:seed
来源:https://stackoverflow.com/questions/13340859/cant-reindex-sunspot-solr-error-rsolrerrorhttp-500-internal-server-er