Class: Couchbase::SearchQuery::ConjunctionQuery

Inherits:
SearchQuery
  • Object
show all
Defined in:
lib/couchbase/search_options.rb,
/home/runner/work/couchbase-ruby-client/couchbase-ruby-client/lib/couchbase/search_options.rb

Overview

Result documents must satisfy all of the child queries.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*queries) {|self| ... } ⇒ ConjunctionQuery

Returns a new instance of ConjunctionQuery.

Parameters:

Yield Parameters:



738
739
740
741
742
# File 'lib/couchbase/search_options.rb', line 738

def initialize(*queries)
  super()
  @queries = queries.flatten
  yield self if block_given?
end

Instance Attribute Details

#boost ⇒ Float

Returns:

  • (Float)


733
734
735
# File 'lib/couchbase/search_options.rb', line 733

def boost
  @boost
end

Instance Method Details

#and_also(*queries) ⇒ Object

Parameters:



745
746
747
# File 'lib/couchbase/search_options.rb', line 745

def and_also(*queries)
  @queries |= queries.flatten
end

#empty? ⇒ Boolean

Returns:

  • (Boolean)


749
750
751
# File 'lib/couchbase/search_options.rb', line 749

def empty?
  @queries.empty?
end

#to_h ⇒ Hash<Symbol, #to_json>

Returns:

Raises:



754
755
756
757
758
759
760
# File 'lib/couchbase/search_options.rb', line 754

def to_h
  raise Error::InvalidArgument, "compound conjunction query must have sub-queries" if @queries.nil? || @queries.empty?

  data = {:conjuncts => @queries.uniq.map(&:to_h)}
  data[:boost] = boost if boost
  data
end