sunspot的坑爹配置引起了围观
Posted
sunspot的Gem用的是
```ruby Gemfile gem 'sunspot_rails', '2.1.1' gem 'sunspot_solr', '2.1.1'
```bash shell
user@xxxx:~/xxxxx/current$ RAILS_ENV=production bundle exec rake sunspot:reindex --trace
** Invoke sunspot:reindex (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute sunspot:reindex
rake aborted!
RSolr::Error::Http: RSolr::Error::Http - 404 Not Found
Error: Not Found
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:HaoSite</query></delete>"
Backtrace: /home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:283:in `adapt_response'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:190:in `execute'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:176:in `send_and_receive'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `block in instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'
(eval):2:in `post'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:82:in `update'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:146:in `delete_by_query'/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:283:in `adapt_response'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:190:in `execute'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:176:in `send_and_receive'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:16:in `block in send_and_receive_with_as_instrumentation'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `block in instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/activesupport-4.1.0/lib/active_support/notifications.rb:159:in `instrument'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/solr_instrumentation.rb:15:in `send_and_receive_with_as_instrumentation'
(eval):2:in `post'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:82:in `update'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rsolr-1.0.10/lib/rsolr/client.rb:146:in `delete_by_query'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/indexer.rb:58:in `remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session.rb:181:in `block in remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session.rb:181:in `each'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session.rb:181:in `remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb:17:in `method_missing'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot.rb:464:in `remove_all'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/newrelic_rpm-3.7.3.204/lib/new_relic/agent/method_tracer.rb:549:in `block in remove_all_with_trace_SolrClient_Sunspot_delete'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/newrelic_rpm-3.7.3.204/lib/new_relic/agent/method_tracer.rb:281:in `trace_execution_scoped'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/newrelic_rpm-3.7.3.204/lib/new_relic/agent/method_tracer.rb:544:in `remove_all_with_trace_SolrClient_Sunspot_delete'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/searchable.rb:183:in `solr_remove_all_from_index'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/searchable.rb:202:in `solr_reindex'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/tasks.rb:57:in `block (4 levels) in <top (required)>'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/class_set.rb:16:in `each'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot-2.1.1/lib/sunspot/class_set.rb:16:in `each'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/tasks.rb:56:in `block (3 levels) in <top (required)>'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/tasks.rb:68:in `with_session'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/sunspot_rails-2.1.1/lib/sunspot/rails/tasks.rb:19:in `block (2 levels) in <top (required)>'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:240:in `call'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:240:in `block in execute'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:235:in `each'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:235:in `execute'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/xxxxxx/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/task.rb:165:in `invoke'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:150:in `invoke_task'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:106:in `each'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:106:in `block in top_level'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:115:in `run_with_threads'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:100:in `top_level'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:78:in `block in run'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:176:in `standard_exception_handling'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/lib/rake/application.rb:75:in `run'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/gems/rake-10.3.1/bin/rake:33:in `<top (required)>'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/bin/rake:23:in `load'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/bin/rake:23:in `<main>'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/bin/ruby_executable_hooks:15:in `eval'
/home/xxxxxx/.rvm/gems/ruby-2.1.0@xxxx/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => sunspot:reindex
production死活都报这个错!
解决方法:
```ruby vi config/sunspot.yml
production:
solr:
hostname: localhost
port: 8983
log_level: INFO
#Changing /solr/production to /solr/default fixes the problem for me.
path: /solr/default #就是这一行,坑啊!
# read_timeout: 2
# open_timeout: 0.5
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
path: /solr/development
ps aux | grep solr kill -9 id #solr杀死服务的进程 rm -r ./solr #删除rails下的目录
RAILS_ENV=production bundle exec rake sunspot:solr:start
#过几秒以后reindex RAILS_ENV=production bundle exec rake sunspot:solr:reindex
ref:
* [http://stackoverflow.com/a/21267395/1159849](http://stackoverflow.com/a/21267395/1159849)
* [https://github.com/sunspot/sunspot/issues/492](https://github.com/sunspot/sunspot/issues/492)
* [278-search-with-sunspot](railscasts.com/episodes/278-search-with-sunspot)
此文章 短链接: http://dlj.bz/gqtPUz
Tag Cloud
AFNetworking(1)
AngularJS(2)
Devise(1)
Devops(1)
Homebrew(1)
MacOSX(11)
Rails4(2)
TTS(1)
Unauthorized(1)
analysis(1)
android(1)
apache(2)
api(1)
assets(5)
backup(3)
blog(1)
bower(1)
bundle(2)
cache(1)
capistrano(2)
capistrano3(2)
centos(4)
chrome-extension(1)
crontab(1)
css(1)
curl(1)
data(2)
deploy(2)
dlj(1)
dropbox(3)
elasticsearch(1)
fqa(1)
gem(7)
geobean(1)
gfw(1)
gis(1)
git(4)
github(2)
gitlib(1)
google(1)
httpd(1)
iOS(2)
java(1)
javascript(2)
jekyll(1)
js(2)
letsencrypt(1)
linode(2)
linux(16)
memcached(1)
mongodb(5)
mongoid(2)
mongomapper(1)
mtr(1)
mysql(2)
newrelic(1)
nginx(7)
nodejs(1)
notejs(1)
observer(1)
octopress(1)
omniauth-oauth(1)
openlayers(1)
paginate(2)
passenger(2)
pipeline(1)
plugin(2)
production(1)
proxy(3)
rails(23)
rails3(4)
rake(1)
restful_authentication(1)
ruby(28)
rvm(6)
search(1)
siege(1)
sinatra(2)
skill(7)
socks(1)
solr(1)
sql(2)
sqlserver(1)
ssh(6)
ssl(1)
story(4)
sublime-text(3)
sunspot(1)
sweeper(1)
theme(1)
tile(1)
tools(1)
ubuntu(19)
vagrantbox(2)
vps(2)
web(1)
webkit(1)
webpack(1)
win(3)
xcode(2)
yarn(1)
yum(1)
佛(3)
创业(1)
压力测试(2)
正则(1)
转载(7)