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

This documentation is outdated. Please see the most recent version at docs.arangodb.com

Analyzer Management

The JavaScript API can be accessed via the @arangodb/analyzers module from both server-side and client-side code (arangosh, Foxx):

var analyzers = require("@arangodb/analyzers");

See Analyzers for general information and details about the attributes.

Analyzer Module Methods

Create an Analyzer

var analyzer = analyzers.save(<name>, <type>[, <properties>[, <features>]])

Create a new Analyzer with custom configuration in the current database.

  • name (string): name for identifying the Analyzer later
  • type (string): the kind of Analyzer to create
  • properties (object, optional): settings specific to the chosen type. Most types require at least one property, so this may not be optional
  • features (array, optional): array of strings with names of the features to enable
  • returns analyzer (object): Analyzer object, also if an Analyzer with the same settings exists already. An error is raised if the settings mismatch or if they are invalid
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.save("csv", "delimiter", { "delimiter": "," }, ["frequency", "norm", "position"]);
Show execution results
Hide execution results
{ 
  "name" : "_system::csv", 
  "type" : "delimiter", 
  "properties" : { 
    "delimiter" : "," 
  }, 
  "features" : [ 
    "position", 
    "norm", 
    "frequency" 
  ] 
}

Get an Analyzer

var analyzer = analyzers.analyzer(<name>)

Get an Analyzer by the name, stored in the current database. The name can be prefixed with _system:: to access Analyzers stored in the _system database.

  • name (string): name of the Analyzer to find
  • returns analyzer (object|null): Analyzer object if found, else null
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.analyzer("text_en");
Show execution results
Hide execution results
[ArangoAnalyzer "text_en" (type text)]

List all Analyzers

var analyzerArray = analyzers.toArray()

List all Analyzers available in the current database.

  • returns analyzerArray (array): array of Analyzer objects
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.toArray();
Show execution results
Hide execution results
[ 
  [ArangoAnalyzer "text_pt" (type text)], 
  [ArangoAnalyzer "text_zh" (type text)], 
  [ArangoAnalyzer "text_en" (type text)], 
  [ArangoAnalyzer "text_es" (type text)], 
  [ArangoAnalyzer "text_de" (type text)], 
  [ArangoAnalyzer "text_fi" (type text)], 
  [ArangoAnalyzer "identity" (type identity)], 
  [ArangoAnalyzer "text_it" (type text)], 
  [ArangoAnalyzer "text_fr" (type text)], 
  [ArangoAnalyzer "text_sv" (type text)], 
  [ArangoAnalyzer "text_nl" (type text)], 
  [ArangoAnalyzer "text_no" (type text)], 
  [ArangoAnalyzer "text_ru" (type text)], 
  [ArangoAnalyzer "_system::custom" (type text)], 
  [ArangoAnalyzer "_system::delimiter_hyphen" (type delimiter)] 
]

Remove an Analyzer

analyzers.remove(<name> [, <force>])

Delete an Analyzer from the current database.

  • name (string): name of the Analyzer to remove
  • force (bool, optional): remove Analyzer even if in use by a View. Default: false
  • returns nothing: no return value on success, otherwise an error is raised
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.remove("csv");
Show execution results
Hide execution results
(Empty output)

Analyzer Object Methods

Individual Analyzer objects expose getter accessors for the aforementioned definition attributes (see Create an Analyzer).

Get Analyzer Name

var name = analyzer.name()
  • returns name (string): name of the Analyzer
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.analyzer("text_en").name();
Show execution results
Hide execution results
text_en

Get Analyzer Type

var type = analyzer.type()
  • returns type (string): type of the Analyzer
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.analyzer("text_en").type();
Show execution results
Hide execution results
text

Get Analyzer Properties

var properties = analyzer.properties()
  • returns properties (object): type dependent properties of the Analyzer
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.analyzer("text_en").properties();
Show execution results
Hide execution results
{ 
  "locale" : "en.utf-8", 
  "case" : "lower", 
  "stopwords" : [ ], 
  "accent" : false, 
  "stemming" : true 
}

Get Analyzer Features

var features = analyzer.features()
  • returns features (array): array of strings with the features of the Analyzer
arangosh> var analyzers = require("@arangodb/analyzers");
arangosh> analyzers.analyzer("text_en").features();
Show execution results
Hide execution results
[ 
  "position", 
  "norm", 
  "frequency" 
]