ArangoDB v3.10 reached End of Life (EOL) and is no longer supported.

This documentation is outdated. Please see the most recent stable version.

HTTP interface for search-alias Views

The HTTP API for Views lets you manage search-alias Views, including adding and removing inverted indexes

Create a search-alias View

POST /_api/view
Creates a new View with a given name and properties if it does not already exist.
Request Body application/json object
  • A list of inverted indexes to add to the View.

    • The name of a collection.

    • The name of an inverted index of the collection, or the index ID without the <collection>/ prefix.

  • The name of the View.

  • The type of the View. Must be equal to "search-alias". This option is immutable.

Responses
  • If the name or type attribute are missing or invalid, then an HTTP 400 error is returned.

  • If a View called name already exists, then an HTTP 409 error is returned.

Examples

curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view
{
  "name": "products",
  "type": "search-alias",
  "indexes": [
    {
      "collection": "books",
      "index": "inv-idx"
    }
  ]
}
Show output
HTTP/1.1 201 Created
content-type: application/json
cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
connection: Keep-Alive
content-length: 148
content-security-policy: frame-ancestors 'self'; form-action 'self';
expires: 0
pragma: no-cache
server: ArangoDB
strict-transport-security: max-age=31536000 ; includeSubDomains
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff

{ 
  "globallyUniqueId" : "h1617A8BD8EEE/71483", 
  "id" : "71483", 
  "name" : "products", 
  "type" : "search-alias", 
  "indexes" : [ 
    { 
      "collection" : "books", 
      "index" : "inv-idx" 
    } 
  ] 
}

Get information about a View

GET /_api/view/{view-name}

The result is an object briefly describing the View with the following attributes:

  • id: The identifier of the View
  • name: The name of the View
  • type: The type of the View as string
Path Parameters
  • The name of the View.

Query Parameters
    HTTP Headers
      Responses
      • If the view-name is unknown, then a HTTP 404 is returned.

      Examples

      Using an identifier:

      curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71485
      Show output
      HTTP/1.1 200 OK
      content-type: application/json
      cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
      connection: Keep-Alive
      content-length: 124
      content-security-policy: frame-ancestors 'self'; form-action 'self';
      expires: 0
      pragma: no-cache
      server: ArangoDB
      strict-transport-security: max-age=31536000 ; includeSubDomains
      x-arango-queue-time-seconds: 0.000000
      x-content-type-options: nosniff
      
      { 
        "error" : false, 
        "code" : 200, 
        "type" : "arangosearch", 
        "name" : "productsView", 
        "id" : "71485", 
        "globallyUniqueId" : "h1617A8BD8EEE/71485" 
      }

      Using a name:

      curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/productsView
      Show output
      HTTP/1.1 200 OK
      content-type: application/json
      cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
      connection: Keep-Alive
      content-length: 124
      content-security-policy: frame-ancestors 'self'; form-action 'self';
      expires: 0
      pragma: no-cache
      server: ArangoDB
      strict-transport-security: max-age=31536000 ; includeSubDomains
      x-arango-queue-time-seconds: 0.000000
      x-content-type-options: nosniff
      
      { 
        "error" : false, 
        "code" : 200, 
        "type" : "arangosearch", 
        "name" : "productsView", 
        "id" : "71489", 
        "globallyUniqueId" : "h1617A8BD8EEE/71489" 
      }

      Read properties of a View

      GET /_api/view/{view-name}/properties

      Returns an object containing the definition of the View identified by view-name.

      The result is an object with a full description of a specific View, including View type dependent properties.

      Path Parameters
      • The name of the View.

      Query Parameters
        HTTP Headers
          Responses
          • If the view-name is missing, then a HTTP 400 is returned.

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

          Examples

          Using an identifier:

          curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71501/properties
          Show output
          HTTP/1.1 200 OK
          content-type: application/json
          cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
          connection: Keep-Alive
          content-length: 177
          content-security-policy: frame-ancestors 'self'; form-action 'self';
          expires: 0
          pragma: no-cache
          server: ArangoDB
          strict-transport-security: max-age=31536000 ; includeSubDomains
          x-arango-queue-time-seconds: 0.000000
          x-content-type-options: nosniff
          
          { 
            "error" : false, 
            "code" : 200, 
            "type" : "search-alias", 
            "name" : "productsView", 
            "indexes" : [ 
              { 
                "collection" : "books", 
                "index" : "inv-idx" 
              } 
            ], 
            "id" : "71501", 
            "globallyUniqueId" : "h1617A8BD8EEE/71501" 
          }

          Using a name:

          curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view/productsView/properties
          Show output
          HTTP/1.1 200 OK
          content-type: application/json
          cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
          connection: Keep-Alive
          content-length: 177
          content-security-policy: frame-ancestors 'self'; form-action 'self';
          expires: 0
          pragma: no-cache
          server: ArangoDB
          strict-transport-security: max-age=31536000 ; includeSubDomains
          x-arango-queue-time-seconds: 0.000000
          x-content-type-options: nosniff
          
          { 
            "error" : false, 
            "code" : 200, 
            "type" : "search-alias", 
            "name" : "productsView", 
            "indexes" : [ 
              { 
                "collection" : "books", 
                "index" : "inv-idx" 
              } 
            ], 
            "id" : "71511", 
            "globallyUniqueId" : "h1617A8BD8EEE/71511" 
          }

          List all Views

          GET /_api/view

          Returns an object containing a listing of all Views in a database, regardless of their type. It is an array of objects with the following attributes:

          • id
          • name
          • type
          Responses
          • The list of Views

          Examples

          Return information about all Views:

          curl --header 'accept: application/json' --dump - http://localhost:8529/_api/view
          Show output
          HTTP/1.1 200 OK
          content-type: application/json
          cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
          connection: Keep-Alive
          content-length: 328
          content-security-policy: frame-ancestors 'self'; form-action 'self';
          expires: 0
          pragma: no-cache
          server: ArangoDB
          strict-transport-security: max-age=31536000 ; includeSubDomains
          x-arango-queue-time-seconds: 0.000000
          x-content-type-options: nosniff
          
          { 
            "error" : false, 
            "code" : 200, 
            "result" : [ 
              { 
                "globallyUniqueId" : "h1617A8BD8EEE/128", 
                "id" : "128", 
                "name" : "demoView", 
                "type" : "arangosearch" 
              }, 
              { 
                "globallyUniqueId" : "h1617A8BD8EEE/71513", 
                "id" : "71513", 
                "name" : "productsView", 
                "type" : "search-alias" 
              }, 
              { 
                "globallyUniqueId" : "h1617A8BD8EEE/71514", 
                "id" : "71514", 
                "name" : "reviewsView", 
                "type" : "arangosearch" 
              } 
            ] 
          }

          Replace the properties of a search-alias View

          PUT /_api/view/{view-name}/properties
          Replaces the list of indexes of a search-alias View.
          Path Parameters
          • The name of the View.

          Query Parameters
            HTTP Headers
              Request Body application/json object
              • A list of inverted indexes for the View.

                • The name of a collection.

                • The name of an inverted index of the collection, or the index ID without the <collection>/ prefix.

              Responses
              • On success, an object with the following attributes is returned:

                  Response Body application/json object
                • The identifier of the View.

                • The list of inverted indexes that are part of the View.

                  • The name of a collection.

                  • The name of an inverted index of the collection.

                • The name of the View.

                • The View type ("search-alias").

              • If the view-name is missing, then a HTTP 400 is returned.

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

              Examples

              curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/productsView/properties
              {
                "indexes": [
                  {
                    "collection": "books",
                    "index": "inv_descr"
                  }
                ]
              }
              Show output
              HTTP/1.1 200 OK
              content-type: application/json
              cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
              connection: Keep-Alive
              content-length: 154
              content-security-policy: frame-ancestors 'self'; form-action 'self';
              expires: 0
              pragma: no-cache
              server: ArangoDB
              strict-transport-security: max-age=31536000 ; includeSubDomains
              x-arango-queue-time-seconds: 0.000000
              x-content-type-options: nosniff
              
              { 
                "globallyUniqueId" : "h1617A8BD8EEE/71530", 
                "id" : "71530", 
                "name" : "productsView", 
                "type" : "search-alias", 
                "indexes" : [ 
                  { 
                    "collection" : "books", 
                    "index" : "inv_descr" 
                  } 
                ] 
              }

              Update the properties of a search-alias View

              PATCH /_api/view/{view-name}/properties
              Updates the list of indexes of a search-alias View.
              Path Parameters
              • The name of the View.

              Query Parameters
                HTTP Headers
                  Request Body application/json object
                  • A list of inverted indexes to add to or remove from the View.

                    • The name of a collection.

                    • The name of an inverted index of the collection, or the index ID without the <collection>/ prefix.

                    • Whether to add or remove the index to the stored indexes property of the View. Possible values: "add", "del". The default is "add".

                  Responses
                  • On success, an object with the following attributes is returned:

                      Response Body application/json object
                    • The identifier of the View.

                    • The list of inverted indexes that are part of the View.

                      • The name of a collection.

                      • The name of an inverted index of the collection.

                    • The name of the View.

                    • The View type ("search-alias").

                  • If the view-name is missing, then a HTTP 400 is returned.

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

                  Examples

                  curl -X PATCH --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/productsView/properties
                  {
                    "indexes": [
                      {
                        "collection": "books",
                        "index": "inv_descr"
                      }
                    ]
                  }
                  Show output
                  HTTP/1.1 200 OK
                  content-type: application/json
                  cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
                  connection: Keep-Alive
                  content-length: 197
                  content-security-policy: frame-ancestors 'self'; form-action 'self';
                  expires: 0
                  pragma: no-cache
                  server: ArangoDB
                  strict-transport-security: max-age=31536000 ; includeSubDomains
                  x-arango-queue-time-seconds: 0.000000
                  x-content-type-options: nosniff
                  
                  { 
                    "globallyUniqueId" : "h1617A8BD8EEE/71543", 
                    "id" : "71543", 
                    "name" : "productsView", 
                    "type" : "search-alias", 
                    "indexes" : [ 
                      { 
                        "collection" : "books", 
                        "index" : "inv_title" 
                      }, 
                      { 
                        "collection" : "books", 
                        "index" : "inv_descr" 
                      } 
                    ] 
                  }

                  Rename a View

                  PUT /_api/view/{view-name}/rename

                  Renames a View. Expects an object with the attribute(s)

                  • name: The new name

                  It returns an object with the attributes

                  • id: The identifier of the View.
                  • name: The new name of the View.
                  • type: The View type.
                  Renaming Views is not supported in cluster deployments.
                  Path Parameters
                  • The name of the View to rename.

                  Query Parameters
                    HTTP Headers
                      Responses
                      • If the view-name is missing, then a HTTP 400 is returned.

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

                      Examples

                      curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view/productsView/rename
                      {
                        "name": "catalogView"
                      }
                      Show output
                      HTTP/1.1 200 OK
                      content-type: application/json
                      cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
                      connection: Keep-Alive
                      content-length: 474
                      content-security-policy: frame-ancestors 'self'; form-action 'self';
                      expires: 0
                      pragma: no-cache
                      server: ArangoDB
                      strict-transport-security: max-age=31536000 ; includeSubDomains
                      x-arango-queue-time-seconds: 0.000000
                      x-content-type-options: nosniff
                      
                      { 
                        "globallyUniqueId" : "h1617A8BD8EEE/71545", 
                        "id" : "71545", 
                        "name" : "catalogView", 
                        "type" : "arangosearch", 
                        "cleanupIntervalStep" : 2, 
                        "commitIntervalMsec" : 1000, 
                        "consolidationIntervalMsec" : 1000, 
                        "consolidationPolicy" : { 
                          "type" : "tier", 
                          "segmentsBytesFloor" : 2097152, 
                          "segmentsBytesMax" : 5368709120, 
                          "segmentsMax" : 10, 
                          "segmentsMin" : 1, 
                          "minScore" : 0 
                        }, 
                        "primarySort" : [ ], 
                        "primarySortCompression" : "lz4", 
                        "storedValues" : [ ], 
                        "writebufferActive" : 0, 
                        "writebufferIdle" : 64, 
                        "writebufferSizeMax" : 33554432, 
                        "links" : { 
                        } 
                      }

                      Drop a View

                      DELETE /_api/view/{view-name}

                      Drops the View identified by view-name.

                      If the View was successfully dropped, an object is returned with the following attributes:

                      • error: false
                      • id: The identifier of the dropped View
                      Path Parameters
                      • The name of the View to drop.

                      Query Parameters
                        HTTP Headers
                          Responses
                          • If the view-name is missing, then a HTTP 400 is returned.

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

                          Examples

                          Using an identifier:

                          curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/71551
                          Show output
                          HTTP/1.1 200 OK
                          content-type: application/json
                          cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
                          connection: Keep-Alive
                          content-length: 40
                          content-security-policy: frame-ancestors 'self'; form-action 'self';
                          expires: 0
                          pragma: no-cache
                          server: ArangoDB
                          strict-transport-security: max-age=31536000 ; includeSubDomains
                          x-arango-queue-time-seconds: 0.000000
                          x-content-type-options: nosniff
                          
                          { 
                            "error" : false, 
                            "code" : 200, 
                            "result" : true 
                          }

                          Using a name:

                          curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/view/productsView
                          Show output
                          HTTP/1.1 200 OK
                          content-type: application/json
                          cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
                          connection: Keep-Alive
                          content-length: 40
                          content-security-policy: frame-ancestors 'self'; form-action 'self';
                          expires: 0
                          pragma: no-cache
                          server: ArangoDB
                          strict-transport-security: max-age=31536000 ; includeSubDomains
                          x-arango-queue-time-seconds: 0.000000
                          x-content-type-options: nosniff
                          
                          { 
                            "error" : false, 
                            "code" : 200, 
                            "result" : true 
                          }