Class: Elasticsearch::DSL::Search::Highlight

Inherits:
Object
  • Object
show all
Includes:
BaseComponent
Defined in:
lib/elasticsearch/dsl/search/highlight.rb

Overview

Wraps the ‘highlight` part of a search definition

Instance Method Summary collapse

Methods included from BaseComponent

included

Constructor Details

#initialize(*args, &block) ⇒ Highlight

Returns a new instance of Highlight.



29
30
31
32
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 29

def initialize(*args, &block)
  @value = args.pop || {}
  super
end

Instance Method Details

#encoder(value) ⇒ Object Also known as: encoder=

Specify the ‘encoder` option for highlighting



87
88
89
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 87

def encoder(value)
  @value[:encoder] = value
end

#field(name, options = {}) ⇒ Object

Specify a single field to highlight

Examples:


search do
  highlight do
    field :title, fragment_size: 0
    field :body if options[:comments]
  end
end


69
70
71
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 69

def field(name, options={})
  (@value[:fields] ||= {}).update name.to_sym => options
end

#fields(value_or_name) ⇒ Object

Specify the fields to highlight

Examples:


search do
  highlight do
    fields [:title, :body]
    field  :comments.body if options[:comments]
  end
end


45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 45

def fields(value_or_name)
  value = case value_or_name
    when Hash
      value_or_name
    when Array
      value_or_name.reduce({}) { |sum, item| sum.update item.to_sym => {}; sum }
    else
  end

  (@value[:fields] ||= {}).update value
  self
end

#post_tags(*value) ⇒ Object Also known as: post_tags=

Specify the closing tags for the highlighted snippets



81
82
83
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 81

def (*value)
  @value[:post_tags] = value.flatten
end

#pre_tags(*value) ⇒ Object Also known as: pre_tags=

Specify the opening tags for the highlighted snippets



75
76
77
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 75

def pre_tags(*value)
  @value[:pre_tags] = value.flatten
end

#tags_schema(value) ⇒ Object Also known as: tags_schema=

Specify the ‘tags_schema` option for highlighting



93
94
95
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 93

def tags_schema(value)
  @value[:tags_schema] = value
end

#to_hashHash

Convert the definition to a Hash

Returns:

  • (Hash)


101
102
103
104
105
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 101

def to_hash
  call
  @hash = @value
  @hash
end