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

3.8 KiB

//////////////////////////////////////////////////////////////////////////////// /// @startDocuBlock JSF_post_api_index_hash /// @brief creates a hash index /// /// @RESTHEADER{POST /_api/index#hash, Create hash index} /// /// @RESTQUERYPARAMETERS /// /// @RESTQUERYPARAM{collection-name,string,required} /// The collection name. /// /// @RESTBODYPARAM{type,string,required,string} /// must be equal to "hash". /// /// @RESTBODYPARAM{fields,array,required,string} /// an array of attribute paths. /// /// @RESTBODYPARAM{unique,boolean,required,} /// if true, then create a unique index. /// /// @RESTBODYPARAM{sparse,boolean,required,} /// if true, then create a sparse index. /// /// @RESTDESCRIPTION /// NOTE Swagger examples won't work due to the anchor. /// /// /// Creates a hash index for the collection collection-name if it /// does not already exist. The call expects an object containing the index /// details. /// /// In a sparse index all documents will be excluded from the index that do not /// contain at least one of the specified index attributes (i.e. fields) or that /// have a value of null in any of the specified index attributes. Such documents /// will not be indexed, and not be taken into account for uniqueness checks if /// the unique flag is set. /// /// In a non-sparse index, these documents will be indexed (for non-present /// indexed attributes, a value of null will be used) and will be taken into /// account for uniqueness checks if the unique flag is set. /// /// Note: unique indexes on non-shard keys are not supported in a cluster. /// /// @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{400} /// If the collection already contains documents and you try to create a unique /// hash index in such a way that there are documents violating the uniqueness, /// then a HTTP 400 is returned. /// /// @RESTRETURNCODE{404} /// If the collection-name is unknown, then a HTTP 404 is returned. /// /// @EXAMPLES /// /// Creating an unique constraint /// /// @EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewUniqueConstraint} /// var cn = "products"; /// db._drop(cn); /// db._create(cn); /// /// var url = "/_api/index?collection=" + cn; /// var body = { /// type: "hash", /// unique: true, /// fields : [ "a", "b" ] /// }; /// /// var response = logCurlRequest('POST', url, body); /// /// assert(response.code === 201); /// /// logJsonResponse(response); /// ~ db._drop(cn); /// @END_EXAMPLE_ARANGOSH_RUN /// /// Creating a non-unique hash index /// /// @EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewHashIndex} /// var cn = "products"; /// db._drop(cn); /// db._create(cn); /// /// var url = "/_api/index?collection=" + cn; /// var body = { /// type: "hash", /// unique: false, /// fields: [ "a", "b" ] /// }; /// /// var response = logCurlRequest('POST', url, body); /// /// assert(response.code === 201); /// /// logJsonResponse(response); /// ~ db._drop(cn); /// @END_EXAMPLE_ARANGOSH_RUN /// /// Creating a sparse index /// /// @EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparseHashIndex} /// var cn = "products"; /// db._drop(cn); /// db._create(cn); /// /// var url = "/_api/index?collection=" + cn; /// var body = { /// type: "hash", /// unique: false, /// sparse: true, /// fields: [ "a" ] /// }; /// /// var response = logCurlRequest('POST', url, body); /// /// assert(response.code === 201); /// /// logJsonResponse(response); /// ~ db._drop(cn); /// @END_EXAMPLE_ARANGOSH_RUN /// @endDocuBlock ////////////////////////////////////////////////////////////////////////////////