class Ferret::Field
A Field is a section of a Document. A Field is basically an array with a boost attribute. It also provides pretty printing of the field with the to_s method.
Boost¶ ↑
The boost attribute makes a field more important in the index. That is, you can increase the score of a match for queries that match terms in a boosted field. You may, for example, want to boost a title field so that matches that match in the :title field score more highly than matches that match in the :contents field.
Note: If you'd like to use boosted fields without having to use the Field class you can just include the BoostMixin in the Array class. See BoostMixin.
Public Class Methods
Create a new Field object. You can pass data to the field as either a string;
f = Field.new("This is the fields data")
or as an array of strings;
f = Field.new(["this", "is", "an", "array", "of", "field", "data"])
Of course Fields can also be boosted;
f = Field.new("field data", 1000.0)
# File lib/ferret/document.rb, line 106 def initialize(data = [], boost = 1.0) @boost = boost if data.is_a? Array data.each {|v| self << v} else self << data.to_s end end
Public Instance Methods
# File lib/ferret/document.rb, line 120 def +(o) return Field.new(super(o), self.boost) end
# File lib/ferret/document.rb, line 115 def eql?(o) return (o.is_a? Field and (o.boost == @boost) and super(o)) end
# File lib/ferret/document.rb, line 124 def to_s buf = %{["#{self.join('", "')}"]} buf << "^#@boost" if @boost != 1.0 return buf end