module SunspotCell::DSL::StandardQuery::InstanceMethods
Public Instance Methods
fulltext(keywords, options = {}, &block)
click to toggle source
# File lib/sunspot_cell/dsl/standard_query.rb, line 13 def fulltext(keywords, options = {}, &block) if keywords && !(keywords.to_s =~ /^\s*$/) fulltext_query = @query.add_fulltext(keywords) if field_names = options.delete(:fields) Util.Array(field_names).each do |field_name| @setup.text_fields(field_name).each do |field| fulltext_query.add_fulltext_field(field, field.default_boost) end end end if minimum_match = options.delete(:minimum_match) fulltext_query.minimum_match = minimum_match.to_i end if tie = options.delete(:tie) fulltext_query.tie = tie.to_f end if query_phrase_slop = options.delete(:query_phrase_slop) fulltext_query.query_phrase_slop = query_phrase_slop.to_i end if highlight_field_names = options.delete(:highlight) if highlight_field_names == true fulltext_query.add_highlight else highlight_fields = [] Util.Array(highlight_field_names).each do |field_name| highlight_fields.concat(@setup.text_fields(field_name)) end fulltext_query.add_highlight(highlight_fields) end end if block && fulltext_query fulltext_dsl = Fulltext.new(fulltext_query, @setup) Util.instance_eval_or_call( fulltext_dsl, &block ) end if !field_names && (!fulltext_dsl || !fulltext_dsl.fields_added?) @setup.all_text_fields.each do |field| unless fulltext_query.has_fulltext_field?(field) unless fulltext_dsl && fulltext_dsl.exclude_fields.include?(field.name) fulltext_query.add_fulltext_field(field, field.default_boost) end end end end end if !field_names && (!fulltext_dsl || !fulltext_dsl.fields_added?) unless @setup.all_attachment_fields.empty? @setup.all_attachment_fields.each do |attachment_text_field| unless fulltext_dsl && fulltext_dsl.exclude_fields.include?(attachment_text_field.name) fulltext_query.add_fulltext_field(attachment_text_field, attachment_text_field.default_boost) end end end end end