class Elasticsearch::DSL::Search::Filters::Indices
A filter which executes a custom filter only for documents in specified indices, and optionally another filter for documents in other indices
@example
search do query do filtered do filter do indices do indices ['audio', 'video'] filter do terms tags: ['music'] end no_match_filter do terms tags: ['music', 'audio', 'video'] end end end end end end
@see www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-indices-filter.html
Public Instance Methods
filter(*args, &block)
click to toggle source
DSL
method for building the `filter` part of the query definition
@return [self]
# File lib/elasticsearch/dsl/search/filters/indices.rb, line 59 def filter(*args, &block) @filter = block ? Filter.new(*args, &block) : args.first self end
no_match_filter(*args, &block)
click to toggle source
DSL
method for building the `no_match_filter` part of the query definition
@return [self]
# File lib/elasticsearch/dsl/search/filters/indices.rb, line 68 def no_match_filter(*args, &block) @no_match_filter = block ? Filter.new(*args, &block) : args.first self end
to_hash()
click to toggle source
Converts the query definition to a Hash
@return [Hash]
Calls superclass method
# File lib/elasticsearch/dsl/search/filters/indices.rb, line 77 def to_hash hash = super if @filter _filter = @filter.respond_to?(:to_hash) ? @filter.to_hash : @filter hash[self.name].update(filter: _filter) end if @no_match_filter _no_match_filter = @no_match_filter.respond_to?(:to_hash) ? @no_match_filter.to_hash : @no_match_filter hash[self.name].update(no_match_filter: _no_match_filter) end hash end