Class: Couchbase::Cluster::SearchQuery::GeoPolygonQuery

Inherits:
Couchbase::Cluster::SearchQuery show all
Defined in:
lib/couchbase/search_options.rb

Overview

A search query which allows to match inside a geo polygon.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Couchbase::Cluster::SearchQuery

boolean_field, booleans, conjuncts, date_range, disjuncts, doc_id, geo_bounding_box, geo_distance, geo_polygon, match, match_all, match_none, match_phrase, numeric_range, phrase, prefix, query_string, regexp, term, term_range, wildcard

Constructor Details

#initialize(coordinates) {|self| ... } ⇒ GeoPolygonQuery

Returns a new instance of GeoPolygonQuery.

Parameters:

  • coordinates (Array<Coordinate>)

    list of coordinates that forms polygon

Yield Parameters:



637
638
639
640
641
# File 'lib/couchbase/search_options.rb', line 637

def initialize(coordinates)
  super()
  @coordinates = coordinates
  yield self if block_given?
end

Instance Attribute Details

#boostFloat

Returns:

  • (Float)


629
630
631
# File 'lib/couchbase/search_options.rb', line 629

def boost
  @boost
end

#fieldString

Returns:

  • (String)


632
633
634
# File 'lib/couchbase/search_options.rb', line 632

def field
  @field
end

Instance Method Details

#to_json(*args) ⇒ String

Returns:

  • (String)


644
645
646
647
648
649
650
651
# File 'lib/couchbase/search_options.rb', line 644

def to_json(*args)
  data = {
    "polygon_points" => @coordinates.map { |coord| [coord.longitude, coord.latitude] },
  }
  data["boost"] = boost if boost
  data["field"] = field if field
  data.to_json(*args)
end