Hit objects represent the raw information returned by Solr for a single document. As well as the primary key and class name, hit objects give access to stored field values, keyword relevance score, and keyword highlighting.
Class name of object associated with this hit, as string.
Primary key of object associated with this hit, as string.
Keyword relevance score associated with this result. Nil if this hit is not from a keyword search.
Return the first highlight found for a given field, or nil if there is none.
# File lib/sunspot/search/hit.rb, line 54 def highlight(field_name) highlights(field_name).first end
Returns all highlights for this hit when called without parameters. When a field_name is provided, returns only the highlight for this field.
# File lib/sunspot/search/hit.rb, line 42 def highlights(field_name = nil) if field_name.nil? highlights_cache.values.flatten else highlights_cache[field_name.to_sym] end || [] end
Retrieve the instance associated with this hit. This is lazy-loaded, but the first time it is called on any hit, all the hits for the search will load their instances using the adapter’s load_all method.
# File lib/sunspot/search/hit.rb, line 88 def result return @result if defined?(@result) @search.populate_hits @result end
Retrieve stored field value. For any attribute field configured with :stored => true, the Hit object will contain the stored value for that field. The value of this field will be typecast according to the type of the field.
The name of the field for which to retrieve the stored value.
If you want to access a stored dynamic field, this should be the dynamic component of the field name.
# File lib/sunspot/search/hit.rb, line 72 def stored(field_name, dynamic_field_name = nil) field_key = if dynamic_field_name [field_name.to_sym, dynamic_field_name.to_sym] else field_name.to_sym end return @stored_cache[field_key] if @stored_cache.has_key?(field_key) @stored_cache[field_key] = stored_value(field_name, dynamic_field_name) end
Returns the instance primary key when the Hit is used to generate urls For example, using a search that stores the :name attribute:
hits = Sunspot.search(Object) do ... hits.each do |hit| link_to hit.stored(:name), edit_object_path(hit) end
# File lib/sunspot/search/hit.rb, line 109 def to_param self.primary_key end