Topic: Sunspot Searching With Facets

I haven't implemented a search feature before and feel a bit stuck. I have a Sunspot search feature which finds results based on keywords - this works great - but I now want to implement the multi select facet feature, but I can't even seem to figure out how to set-up a basic facet search.

I have a many to many relationship (in rails not in real life):

Class People has_many :skills, :through => experience (and vice versa etc)

    Class People < ActiveRecord::Base
      has_many :skills, :through => experience
  
      searchable do
        text :first_name, :surname
      end
    end

In the controller

    @search = Sunspot.search(People)
       facet :skill_ids
    end

This is the basic example I can't get working. It generates this error:

    Sunspot::UnrecognizedFieldError: No field configured for People with name 'skill_ids'

How do I create the link to :skill_ids

I think I must be missing some reference in the model - but no examples I can find do reference the Ids of a relationship. Most of the examples I found use columns that are already in that model when using the facet functionality.

  1. How can I get the basic implementation working?

  2. How would I use this in the view - do I have to call hits.facet and iterate over the skills? What would the code look like to display this?

  3. How would I select multiple facets to search by?

Thank you for your time!

Re: Sunspot Searching With Facets

First of all you must include the facet field in the searchable block like this

searchable do
        text :first_name, :surname
        integer: skill_ids
end

And in your view file you need to add a bit of coding to get the facet values..

<% for row in @search.facet(:skill_ids).rows %>
<%= row.value %>
<%= row.count %>
<% end %>

where 'row.value'  returns the skill_id and 'row.count' returns its corresponding count.
Pretty Simple righ?? big_smile

I think you got what you needed...
If you need to know more about the sunspot rails coding please visit the below llink

https://github.com/outoftime/sunspot/wiki

Play around with facets !!! All the very best..

Regards,
NIYAS