Working with multi-dimensional indexes

Create a multi-dimensional index

POST /_db/{database-name}/_api/index
Creates a multi-dimensional index for the collection collection-name, if it does not already exist. The call expects an object containing the index details.
Path Parameters
  • The name of the database.

Query Parameters
  • The collection name.

HTTP Headers
    Request Body application/json object
    • must be equal to "double". Currently only doubles are supported as values.

    • an array of attribute names used for each dimension. Array expansions are not allowed.

    • You can set this option to true to create the index in the background, which will not write-lock the underlying collection for as long as if the index is built in the foreground. The default value is false.

    • An easy-to-remember name for the index to look it up or refer to it in index hints. Index names are subject to the same character restrictions as collection names. If omitted, a name is auto-generated so that it is unique with respect to the collection, e.g. idx_832910498.

    • must be equal to "zkd".

    • if true, then create a unique index.

    Responses
    • If the index already exists, then a HTTP 200 is returned.

    • If the index does not already exist and could be created, then a HTTP 201 is returned.

    • If the index definition is invalid, then a HTTP 400 is returned.

    • If the collection-name is unknown, then a HTTP 404 is returned.

    Examples

    Creating a multi-dimensional index

    curl -X POST --header 'accept: application/json' --data-binary @- --dump - 'http://localhost:8529/_api/index?collection=intervals' <<'EOF'
    {
      "type": "zkd",
      "fields": [
        "from",
        "to"
      ],
      "fieldValueTypes": "double"
    }
    EOF
    Show output