ArangoDB v3.13 is under development and not released yet. This documentation is not final and potentially incomplete.

HTTP interface for Analyzers

The HTTP API for Analyzers lets you create and delete Analyzers, as well as list all or get specific Analyzers with all their settings

The RESTful API for managing ArangoSearch Analyzers is accessible via the /_api/analyzer endpoint.

See the description of Analyzers for an introduction and the available types, properties and features.

Create an Analyzer

POST /_db/{database-name}/_api/analyzer
Creates a new Analyzer based on the provided configuration.
Path Parameters
  • The name of the database.

Query Parameters
    HTTP Headers
      Request Body application/json object
      • Possible values in array: "frequency", "norm", "position", "offset"

        The set of features to set on the Analyzer generated fields.

      • The Analyzer name.

      • The properties used to configure the specified Analyzer type.

      • The Analyzer type.

      Responses
      • An Analyzer with a matching name and definition already exists.

      • A new Analyzer definition was successfully created.

      • One or more of the required parameters is missing or one or more of the parameters is not valid.

      • The user does not have permission to create and Analyzer with this configuration.

      Examples

      curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/analyzer
      {
        "name": "testAnalyzer",
        "type": "identity"
      }
      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: 80
      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
      
      { 
        "name" : "_system::testAnalyzer", 
        "type" : "identity", 
        "properties" : { 
        }, 
        "features" : [ ] 
      }

      Get an Analyzer definition

      GET /_db/{database-name}/_api/analyzer/{analyzer-name}

      Retrieves the full definition for the specified Analyzer name. The resulting object contains the following attributes:

      • name: the Analyzer name
      • type: the Analyzer type
      • properties: the properties used to configure the specified type
      • features: the set of features to set on the Analyzer generated fields
      Path Parameters
      • The name of the database.

      • The name of the Analyzer to retrieve.

      Query Parameters
        HTTP Headers
          Responses
          • The Analyzer definition was retrieved successfully.

          • Such an Analyzer configuration does not exist.

          Examples

          Retrieve an Analyzer definition:

          curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer
          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: 105
          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, 
            "features" : [ ], 
            "properties" : { 
            }, 
            "type" : "identity", 
            "name" : "_system::testAnalyzer" 
          }

          List all Analyzers

          GET /_db/{database-name}/_api/analyzer

          Retrieves a an array of all Analyzer definitions. The resulting array contains objects with the following attributes:

          • name: the Analyzer name
          • type: the Analyzer type
          • properties: the properties used to configure the specified type
          • features: the set of features to set on the Analyzer generated fields
          Path Parameters
          • The name of the database.

          Query Parameters
            HTTP Headers
              Responses
              • The Analyzer definitions was retrieved successfully.

              Examples

              Retrieve all Analyzer definitions:

              curl --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer
              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: 2116
              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" : [ 
                  { 
                    "name" : "text_en", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "en", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_es", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "es", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_fi", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "fi", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_no", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "no", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_pt", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "pt", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_nl", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "nl", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_fr", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "fr", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_it", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "it", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_de", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "de", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_ru", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "ru", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "identity", 
                    "type" : "identity", 
                    "properties" : { 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_sv", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "sv", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : true 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  }, 
                  { 
                    "name" : "text_zh", 
                    "type" : "text", 
                    "properties" : { 
                      "locale" : "zh", 
                      "case" : "lower", 
                      "stopwords" : [ ], 
                      "accent" : false, 
                      "stemming" : false 
                    }, 
                    "features" : [ 
                      "frequency", 
                      "position", 
                      "norm" 
                    ] 
                  } 
                ] 
              }

              Remove an Analyzer

              DELETE /_db/{database-name}/_api/analyzer/{analyzer-name}

              Removes an Analyzer configuration identified by analyzer-name.

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

              • error: false
              • name: The name of the removed Analyzer
              Path Parameters
              • The name of the database.

              • The name of the Analyzer to remove.

              Query Parameters
              • The Analyzer configuration should be removed even if it is in-use.

              HTTP Headers
                Responses
                • The Analyzer configuration was removed successfully.

                • The analyzer-name was not supplied or another request parameter was not valid.

                • The user does not have permission to remove this Analyzer configuration.

                • Such an Analyzer configuration does not exist.

                • The specified Analyzer configuration is still in use and force was omitted or false specified.

                Examples

                Removing without force:

                curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer
                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: 57
                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, 
                  "name" : "_system::testAnalyzer" 
                }

                Removing with force:

                curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/collection
                {
                  "name": "testCollection"
                }
                
                curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/view
                {
                  "name": "testView",
                  "type": "arangosearch",
                  "links": {
                    "testCollection": {
                      "analyzers": [
                        "testAnalyzer"
                      ]
                    }
                  }
                }
                
                curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer?force=false
                
                curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/analyzer/testAnalyzer?force=true
                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: 57
                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, 
                  "name" : "_system::testAnalyzer" 
                }