# File lib/chef_zero/solr/query/binary_operator.rb, line 19 def matches_doc?(doc) case @operator when 'AND' left.matches_doc?(doc) && right.matches_doc?(doc) when 'OR' left.matches_doc?(doc) || right.matches_doc?(doc) when '^' left.matches_doc?(doc) when ':' if left.respond_to?(:literal_string) && left.literal_string values = doc[left.literal_string] else values = doc.matching_values { |key| left.matches_values?([key]) } end right.matches_values?(values) end end