Class: Sunspot::AttributeField
Overview
AttributeField instances encapsulate non-tokenized attribute data. AttributeFields can have any type except TextType, and can also have a reference (for instantiated facets), optionally allow multiple values (false by default), and can store their values (false by default). All scoping, sorting, and faceting is done with attribute fields.
Instance Attribute Summary
Attributes inherited from Field
#boost, #name, #reference, #type
Instance Method Summary collapse
-
#indexed_name ⇒ Object
The name of the field as it is indexed in Solr.
-
#initialize(name, type, options = {}) ⇒ AttributeField
constructor
:nodoc:.
Methods inherited from Field
#cast, #eql?, #hash, #more_like_this?, #multiple?, #to_indexed
Constructor Details
#initialize(name, type, options = {}) ⇒ AttributeField
:nodoc:
136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/sunspot/field.rb', line 136 def initialize(name, type, = {}) super(name, type, ) @multiple = !!.delete(:multiple) @reference = if (reference = .delete(:references)).respond_to?(:name) reference.name elsif reference.respond_to?(:to_sym) reference.to_sym end raise ArgumentError, "Unknown field option #{.keys.first.inspect} provided for field #{name.inspect}" unless .empty? end |
Instance Method Details
#indexed_name ⇒ Object
The name of the field as it is indexed in Solr. The indexed name contains a suffix that contains information about the type as well as whether the field allows multiple values for a document.
Returns
- String
-
The field’s indexed name
156 157 158 |
# File 'lib/sunspot/field.rb', line 156 def indexed_name "#{super}#{'m' if @multiple}#{'s' if @stored}#{'v' if more_like_this?}" end |