Sha256: 1c0c16c69c260eab47aaadcfe3b2368d3cf0111d53110f70ead9efc172ed7605

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 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

      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

1 entries across 1 versions & 1 rubygems

Version Path
benjaminkrause-sunspot-0.9.8 lib/sunspot/query/highlighting.rb