A newer version of this documentation is available.

View Latest

Creating a Query: Polygon-Based

    March 16, 2025
    + 12

    The following query-body uses an array, each of whose elements is a string, containing two floating-point numbers; to specify the latitude and longitude of each of the corners of a polygon --; known as polygon points. In each string, the lat floating-point value precedes the lon.

    Here, the last-specified string in the array is identical to the initial string, thus explicitly closing the box. However, specifying an explicit closure in this way is optional: the closure will be inferred by the Couchbase Server if not explicitly specified.

    If a target data-location falls within the box, its document is returned. The results are specified to be sorted on name alone.

    json
    { "query": { "field": "geo", "polygon_points": [ "37.79393211306212,-122.44234633404847", "37.77995881733997,-122.43977141339417", "37.788031092020155,-122.42925715405579", "37.79026946582319,-122.41149020154114", "37.79571192027403,-122.40735054016113", "37.79393211306212,-122.44234633404847" ] }, "sort": [ "name" ] }

    A subset of formatted output might appear as follows:

    json
    . . . "hits": [ { "index": "geoIndex_661ef3af66ee41b5_54820232", "id": "landmark_25944", "score": 0.3214575420492102, "sort": [ "4" ] }, { "index": "geoIndex_661ef3af66ee41b5_aa574717", "id": "landmark_25681", "score": 0.05294915340807584, "sort": [ "alta" ] }, { "index": "geoIndex_661ef3af66ee41b5_13aa53f3", "id": "landmark_25686", "score": 0.28955510851484045, "sort": [ "atherton" ] }, . . .