Question

I'm having a problem with my sunspot and solr. In development it worked like charme but in production I get the following error out of my rails production log:

RSolr::RequestError (Solr Response: undefined field type): app/controllers/search_controller.rb:7:in `index'

I guess it has something to do with the schema.xml. But I'm quite new to solr. So can anybody help me?

OK:
Controller

def index
 unless params[:q].blank?
  @search = Question.search do
    fulltext params[:q]
  end
  @results = @search.results

else
  @results = nil
end
@searchterm = params[:q]

end

model (Question)

...

searchable do
  text :title 
  text :content
end
Was it helpful?

Solution

It sounds like your production Solr instance is not using Sunspot's schema.xml.

The type field should defined in Sunspot's standard schema.xml, and it is used to index the model name of the object, for later use in filtering your searches. Seeing an error message saying that type is undefined is what implies to me that you're using a schema.xml other than Sunspot's.

It could be that you're using some other sample or default set of configurations from the method you used to install Solr on your server. If you can, please elaborate on how you set up your production Solr server.

OTHER TIPS

For Solr 4.7, copy schema.xml and solrconfig.xml from your_app/solr/conf to /opt/solr/solr/collection1 (or whatever your solr path is) and if still not working, make sure that your config/sunspot.yml is something like:

production:
  solr:
    hostname: localhost
    port: 8983
    log_level: WARNING
    path: /solr/collection1
    # read_timeout: 2
    # open_timeout: 0.5

It is recommended to create another core (my_core) from the solr web interface, copy schema.xml and solrconfig.xml to that folder and point path to /solr/my_core

Make sure to set the field type to required="true" in your schema.xml or reindexing will not include the field "type" in your indexed data.

<field name="type" stored="true" type="string" multiValued="true" indexed="true" required="true" />

For me it was in Heroku addon Websolr dashboard, the default configuration was set to blacklight, and I had to change it to sunspot.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top