Class: Qiita::Elasticsearch::Nodes::FilterNode
- Inherits:
-
Object
- Object
- Qiita::Elasticsearch::Nodes::FilterNode
- Defined in:
- lib/qiita/elasticsearch/nodes/filter_node.rb
Instance Method Summary collapse
-
#initialize(tokens, hierarchal_fields: nil, matchable_fields: nil) ⇒ FilterNode
constructor
A new instance of FilterNode.
- #to_hash ⇒ Object
Constructor Details
#initialize(tokens, hierarchal_fields: nil, matchable_fields: nil) ⇒ FilterNode
Returns a new instance of FilterNode.
11 12 13 14 15 |
# File 'lib/qiita/elasticsearch/nodes/filter_node.rb', line 11 def initialize(tokens, hierarchal_fields: nil, matchable_fields: nil) @hierarchal_fields = hierarchal_fields @matchable_fields = matchable_fields @tokens = tokens end |
Instance Method Details
#to_hash ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/qiita/elasticsearch/nodes/filter_node.rb', line 17 def to_hash if must_not_tokens.empty? && must_tokens.length == 1 TermNode.new( must_tokens.first, hierarchal_fields: @hierarchal_fields, ).to_hash else { "bool" => { "_cache" => true, "must" => must_queries, "must_not" => must_not_queries, }.reject do |key, value| value.is_a?(Array) && value.empty? end, } end end |