class Queries::TermsQueryBuilder
Constants
- NAME
Public Class Methods
new(field_name:, values: [])
click to toggle source
@params:
field_name: name of the field in the document which is being queried values: values which are matched to the data in that field can be: Data Set: Directly matched to the data in the given field. Terms Lookup: Terms lookup fetches the field values of an existing document. Elasticsearch then uses those values as search terms. This can be helpful when searching for a large set of terms. Because terms lookup fetches values from a document, the _source mapping field must be enabled to use terms lookup. The _source field is enabled by default.
# File lib/queries/terms_query_builder.rb, line 23 def initialize field_name:, values: [] @field_name = field_name if values.is_a?(Misc::TermsLookup) @terms_lookup = values else @values = values.is_a?(Array) ? values : values.split(',') end end
Public Instance Methods
field_name_expr()
click to toggle source
FIELD NAME ##########
returns field_name
# File lib/queries/terms_query_builder.rb, line 43 def field_name_expr return @field_name end
query()
click to toggle source
# File lib/queries/terms_query_builder.rb, line 32 def query query = {} terms_query = self.common_query terms_query[@field_name.intern] = @values terms_query[@field_name.intern] = @terms_lookup.settings if @terms_lookup.present? query[name.intern] = terms_query return query end
values_expr()
click to toggle source
FIELD VALUE ##########
returns value
# File lib/queries/terms_query_builder.rb, line 49 def values_expr return @terms_lookup || @values end