1
0
Fork 0
arangodb/Documentation/DocuBlocks/Rest/Indexes/JSF_post_api_index_geo.md

3.6 KiB

//////////////////////////////////////////////////////////////////////////////// /// @startDocuBlock JSF_post_api_index_geo /// @brief creates a geo index /// /// @RESTHEADER{POST /_api/index#geo, Create geo-spatial index} /// /// @RESTQUERYPARAMETERS /// /// @RESTQUERYPARAM{collection,string,required} /// The collection name. /// /// /// @RESTBODYPARAM{type,string,required,string} /// must be equal to "geo". /// /// @RESTBODYPARAM{fields,array,required,string} /// An array with one or two attribute paths. /// /// If it is an array with one attribute path location, then a geo-spatial /// index on all documents is created using location as path to the /// coordinates. The value of the attribute must be an array with at least two /// double values. The array must contain the latitude (first value) and the /// longitude (second value). All documents, which do not have the attribute /// path or with value that are not suitable, are ignored. /// /// If it is an array with two attribute paths latitude and longitude, /// then a geo-spatial index on all documents is created using latitude /// and longitude as paths the latitude and the longitude. The value of /// the attribute latitude and of the attribute longitude must a /// double. All documents, which do not have the attribute paths or which /// values are not suitable, are ignored. /// /// @RESTBODYPARAM{geoJson,string,required,string} /// If a geo-spatial index on a location is constructed /// and geoJson is true, then the order within the array is longitude /// followed by latitude. This corresponds to the format described in /// http://geojson.org/geojson-spec.html#positions /// /// @RESTDESCRIPTION /// NOTE Swagger examples won't work due to the anchor. /// /// /// Creates a geo-spatial index in the collection collection-name, if /// it does not already exist. Expects an object containing the index details. /// /// Geo indexes are always sparse, meaning that documents that do not contain /// the index attributes or have non-numeric values in the index attributes /// will not be indexed. /// /// @RESTRETURNCODES /// /// @RESTRETURNCODE{200} /// If the index already exists, then a HTTP 200 is returned. /// /// @RESTRETURNCODE{201} /// If the index does not already exist and could be created, then a HTTP 201 /// is returned. /// /// @RESTRETURNCODE{404} /// If the collection-name is unknown, then a HTTP 404 is returned. /// /// @EXAMPLES /// /// Creating a geo index with a location attribute /// /// @EXAMPLE_ARANGOSH_RUN{RestIndexCreateGeoLocation} /// var cn = "products"; /// db._drop(cn); /// db._create(cn); /// /// var url = "/_api/index?collection=" + cn; /// var body = { /// type: "geo", /// fields : [ "b" ] /// }; /// /// var response = logCurlRequest('POST', url, body); /// /// assert(response.code === 201); /// /// logJsonResponse(response); /// ~ db._drop(cn); /// @END_EXAMPLE_ARANGOSH_RUN /// /// Creating a geo index with latitude and longitude attributes /// /// @EXAMPLE_ARANGOSH_RUN{RestIndexCreateGeoLatitudeLongitude} /// var cn = "products"; /// db._drop(cn); /// db._create(cn); /// /// var url = "/_api/index?collection=" + cn; /// var body = { /// type: "geo", /// fields: [ "e", "f" ] /// }; /// /// var response = logCurlRequest('POST', url, body); /// /// assert(response.code === 201); /// /// logJsonResponse(response); /// ~ db._drop(cn); /// @END_EXAMPLE_ARANGOSH_RUN /// @endDocuBlock ////////////////////////////////////////////////////////////////////////////////