class Qiita::Elasticsearch::Nodes::FilterNode
Public Class Methods
new(tokens)
click to toggle source
@param [Array<Qiita::Elasticsearch::Tokens>] tokens
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 9 def initialize(tokens) @tokens = tokens end
Public Instance Methods
to_hash()
click to toggle source
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 13 def to_hash if must_not_tokens.empty? && must_tokens.length == 1 TermNode.new(must_tokens.first).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
Private Instance Methods
must_not_queries()
click to toggle source
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 31 def must_not_queries must_not_tokens.map do |token| if token.field_name.nil? { "query" => token.to_hash, } else TermNode.new(token).to_hash end end end
must_not_tokens()
click to toggle source
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 43 def must_not_tokens @must_not_tokens ||= @tokens.select(&:must_not?) end
must_queries()
click to toggle source
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 47 def must_queries must_tokens.map do |token| TermNode.new(token).to_hash end end
must_tokens()
click to toggle source
# File lib/qiita/elasticsearch/nodes/filter_node.rb, line 53 def must_tokens @must_tokens ||= @tokens.select(&:must?) end