質問

I'm setting up my app on Heroku. Already installed the $20 websolr addon. Migrations already ran.

When running heroku rake db:seed I get the following error.

Any idea what is causing this?

$ heroku run rake db:seed
RSolr::Error::Http - 400 Bad Request
Error: <html><head><title>Apache Tomcat/6.0.28 - Error report</title><style><!--H1 {font-    family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status     400 - ERROR: [doc=Dvd 2] unknown field 'dvd_title_as'</h1><HR size="1" noshade="noshade"><p>    <b>type</b> Status report</p><p><b>message</b> <u>ERROR: [doc=Dvd 2] unknown field     'dvd_title_as'</u></p><p><b>description</b> <u>The request sent by the client was     syntactically incorrect (ERROR: [doc=Dvd 2] unknown field 'dvd_title_as').</u></p><HR size="1"     noshade="noshade"><h3>Apache Tomcat/6.0.28</h3></body></html>

Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">Dvd 2</field><field name=\"type\">Dvd</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Dvd</field><field name=\"featured_b\">false</field><field name=\"dvd_title_as\">100% Dirty Slut</field><field name=\"title_text\">100% Dirty Slut</field><field name=\"studio_text\">Cherry Boxxx</field></doc></add>"

Backtrace: /app/vendor/bundle/ruby/1.9.1/gems/rsolr-1.0.8/lib/rsolr/client.rb:230:in `adapt_response'
/app/vendor/bundle/ruby/1.9.1/gems/rsolr-1.0.8/lib/rsolr/client.rb:167:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rsolr-1.0.8/lib/rsolr/client.rb:161:in     `send_and_receive'
(eval):2:in `post'
/app/vendor/bundle/ruby/1.9.1/gems/rsolr-1.0.8/lib/rsolr/client.rb:67:in `update'
/app/vendor/bundle/ruby/1.9.1/gems/rsolr-1.0.8/lib/rsolr/client.rb:87:in `add'
/app/vendor/bundle/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/indexer.rb:101:in `add_documents'
/app/vendor/bundle/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/indexer.rb:26:in `add'
/app/vendor/bundle/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session.rb:91:in `index'
/app/vendor/bundle/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `index'
/app/vendor/bundle/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot.rb:184:in `index'

Tasks: TOP => db:seed
(See full trace by running task with --trace)
役に立ちましたか?

解決

The error message buried in that HTML response is unknown field 'dvd_title_as'.

Basically, the documents your app is sending to Solr aren't defined in the schema.xml. Likely you'll need to update your websolr index with your app's latest schema, which you can do by opening the dashboard with heroku addons:open websolr.

他のヒント

I recommend going to help.websolr.com and filling out a support request.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top