Sha256: f62b23fd7ba279b791a55a9696122502ddf4eaf0826a3976d840da027fa8bb2b

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

module Sunspot
  module Query
    #
    # A query component that builds parameters for requesting highlights
    #
    class Highlighting #:nodoc:
      def initialize(fields=[], options={})
        @fields  = fields
        @options = options
      end

      # 
      # Return Solr highlighting params
      #
      def to_params
        params = {
          :hl => 'on',
          :"hl.simple.pre" => '@@@hl@@@',
          :"hl.simple.post" => '@@@endhl@@@'
        }
        unless @fields.empty?
          params[:"hl.fl"] = @fields.map { |field| field.indexed_name }
        end
        if max_snippets = @options[:max_snippets]
          params[:"hl.snippets"] = max_snippets
        end
        if fragment_size = @options[:fragment_size]
          params[:"hl.fragsize"] = fragment_size
        end
        if @options[:merge_continuous_fragments]
          params[:"hl.mergeContinuous"] = 'true'
        end
        if @options[:phrase_highlighter]
          params[:"hl.usePhraseHighlighter"] = 'true'
          if @options[:require_field_match]
            params[:"hl.requireFieldMatch"] = 'true'
          end
        end
        params
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
kuahyeow-sunspot-0.10.3 lib/sunspot/query/highlighting.rb
sunspot-0.10.2 lib/sunspot/query/highlighting.rb
sunspot-0.10.1 lib/sunspot/query/highlighting.rb
sunspot-0.10.0 lib/sunspot/query/highlighting.rb