当我运行RAILS_ENV=production rake sunspot:solr:reindex
时,收到以下错误消息:
rake aborted!
RSolr::Error::Http: RSolr::Error::Http - 404 Not Found
...
URI: http://localhost:8080/solr/default/update?wt=ruby
Request Headers: {"Content-Type"=>"text/xml"}
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:Piece</query></delete>"
我已使用this tutorial设置Solr,并针对特定的Sunspot配置引用this page。我的config / environments / production.rb文件包括:Sunspot.config.solr.url = 'http://localhost:8080/solr'
和我的config / sunspot.yml文件如下所示:
production:
solr:
hostname: localhost
port: 8080 #tomcat defaults to port 8080
path: '/solr'
log_level: WARNING
pid_dir: '/var/run'
solr_home: solr
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
path: /solr/development
solr_home: solr
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
path: /solr/test
我尝试了类似帖子中列出的所有内容 - 终止所有Solr进程,启动和停止Solr服务器,删除整个solr目录,添加到我的配置文件等等。它们都没有工作。我可以手动访问[hostname]:8080 / solr,但我根本无法重新索引或播种我的数据库。
答案 0 :(得分:0)
我发现问题在于此Solr安装具有与必须用于Sunspot的schema.xml文件不同的schema.xml文件。我所做的是我在本地计算机上复制了schema.xml文件,并将其粘贴到我的生产机器上的/usr/share/solr/conf/schema.xml
中的schema.xml中。我重新启动了Solr实例并删除了rails应用程序中的Solr文件。我也对配置文件搞砸了很多。我删除了production.rb
文件中的行,我的sunspot.yml
文件如下:
production:
solr:
hostname: localhost
port: 8080 #tomcat defaults to port 8080
path: /solr
log_level: WARNING
solr_home: solr
真的很痛......我希望将来可以更好地记录这个宝石用于生产。