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.



16
17
18
19
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 16

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



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

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


56
57
58
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 56

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


32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 32

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



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

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



62
63
64
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 62

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



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

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

#to_hashHash

Convert the definition to a Hash

Returns:

  • (Hash)


88
89
90
91
92
# File 'lib/elasticsearch/dsl/search/highlight.rb', line 88

def to_hash
  call
  @hash = @value
  @hash
end