Class: ElasticsearchDslBuilder::DSL::Search::Queries::Nested

Inherits:
Query
  • Object
show all
Defined in:
lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb

Instance Attribute Summary

Attributes inherited from Query

#type

Instance Method Summary collapse

Constructor Details

#initialize(path = nil) ⇒ Nested

Returns a new instance of Nested.



6
7
8
9
10
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb', line 6

def initialize(path = nil)
  @type = :nested
  path(path)
  super()
end

Instance Method Details

#inner_hits(inner_hits) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb', line 25

def inner_hits(inner_hits)
  raise ArgumentError, 'inner_hits must be an InnerHits object' unless inner_hits.instance_of?(InnerHits)
  @inner_hits = inner_hits
  self
end

#path(path) ⇒ Object

Raises:

  • (ArgumentError)


12
13
14
15
16
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb', line 12

def path(path)
  raise ArgumentError, 'path must be a String' unless path.instance_of?(String)
  @path = path
  self
end

#query(query) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
23
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb', line 18

def query(query)
  raise ArgumentError, 'query must extend type Queries::Query' unless query.is_a?(Query)

  @nested_query = query
  self
end

#to_hashObject



31
32
33
34
35
36
# File 'lib/elasticsearch_dsl_builder/dsl/search/queries/nested.rb', line 31

def to_hash
  @query = { path: @path }
  @query.update(query: @nested_query.to_hash) if @nested_query
  @query.update(inner_hits: @inner_hits.to_hash) if @inner_hits
  super
end