Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions site/config/_default/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ markup:
attribute:
block: true
title: true
extensions:
typographer:
# The automatic conversion of two hyphens to an en dash interferes with
# search examples using the IMDB dataset (in result tables)
emDash: '---'
enDash: '--'

outputFormats:
navigation:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ otherwise check out the chapter on [routes](reference/routers/endpoints.md).

The object returned by the router's methods provides additional methods to
attach metadata and validation to the route. We're using `summary` and
`description` to document what the route does -- these aren't strictly
`description` to document what the route does these aren't strictly
necessary but give us some nice auto-generated documentation.
The `response` method lets us additionally document the response content
type and what the response body will represent.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,7 @@ Gets the value of a header by name. You can validate request headers using the

Returns the header value.

is
--
## is

`req.is(types): string`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ Enterprise Edition.
See [Optimizing View query performance](../../index-and-search/arangosearch/performance.md)
for examples.

UI
--
## UI

### Rebalance Shards for all databases in Web UI

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ otherwise check out the chapter on [routes](reference/routers/endpoints.md).

The object returned by the router's methods provides additional methods to
attach metadata and validation to the route. We're using `summary` and
`description` to document what the route does -- these aren't strictly
`description` to document what the route does these aren't strictly
necessary but give us some nice auto-generated documentation.
The `response` method lets us additionally document the response content
type and what the response body will represent.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,7 @@ Gets the value of a header by name. You can validate request headers using the

Returns the header value.

is
--
## is

`req.is(types): string`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ Enterprise Edition.
See [Optimizing View query performance](../../index-and-search/arangosearch/performance.md)
for examples.

UI
--
## UI

### Rebalance Shards for all databases in Web UI

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ aliases:

**All Editions**

-
- [**`wildcard` Analyzer**](../../index-and-search/analyzers.md#wildcard):
Accelerate wildcard searches against Views and inverted indexes with _n_-grams
to quickly find candidate matches.

**Enterprise Edition**

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ otherwise check out the chapter on [routes](reference/routers/endpoints.md).

The object returned by the router's methods provides additional methods to
attach metadata and validation to the route. We're using `summary` and
`description` to document what the route does -- these aren't strictly
`description` to document what the route does these aren't strictly
necessary but give us some nice auto-generated documentation.
The `response` method lets us additionally document the response content
type and what the response body will represent.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,7 @@ Gets the value of a header by name. You can validate request headers using the

Returns the header value.

is
--
## is

`req.is(types): string`

Expand Down
28 changes: 1 addition & 27 deletions site/content/3.12/develop/http-api/graphs/named-graphs.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ description: ''
name: HttpGharialList
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
examples.loadGraph("routeplanner");
var url = "/_api/gharial";
Expand Down Expand Up @@ -1244,7 +1243,6 @@ description: ''
name: HttpGharialDrop
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social?dropCollections=true";
var response = logCurlRequest('DELETE', url);
Expand Down Expand Up @@ -1346,7 +1344,6 @@ description: ''
name: HttpGharialListVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/vertex";
var response = logCurlRequest('GET', url);
Expand Down Expand Up @@ -1769,7 +1766,6 @@ description: ''
name: HttpGharialAddVertexCol
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/vertex";
body = {
Expand Down Expand Up @@ -2184,7 +2180,6 @@ description: |-
name: HttpGharialRemoveVertexCollection
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
var g = examples.loadGraph("social");
g._addVertexCollection("otherVertices");
var url = "/_api/gharial/social/vertex/otherVertices";
Expand All @@ -2204,17 +2199,13 @@ description: |-
name: HttpGharialRemoveVertexCollectionFailed
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
var g = examples.loadGraph("social");
var url = "/_api/gharial/social/vertex/male";
var response = logCurlRequest('DELETE', url);
var response = logCurlRequest('DELETE', url); // xpError(ERROR_GRAPH_NOT_IN_ORPHAN_COLLECTION)

assert(response.code === 400);

logJsonResponse(response);
db._drop("male");
db._drop("female");
db._drop("relation");
examples.dropGraph("social");
```

Expand Down Expand Up @@ -2308,7 +2299,6 @@ description: ''
name: HttpGharialListEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/edge";
var response = logCurlRequest('GET', url);
Expand Down Expand Up @@ -2752,7 +2742,6 @@ description: ''
name: HttpGharialAddEdgeCol
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/edge";
body = {
Expand Down Expand Up @@ -3208,7 +3197,6 @@ description: ''
name: HttpGharialReplaceEdgeCol
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/edge/relation";
body = {
Expand Down Expand Up @@ -3596,7 +3584,6 @@ description: ''
name: HttpGharialEdgeDefinitionRemove
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/edge/relation";
var response = logCurlRequest('DELETE', url);
Expand Down Expand Up @@ -3875,7 +3862,6 @@ description: ''
name: HttpGharialAddVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/vertex/male";
body = {
Expand Down Expand Up @@ -4136,7 +4122,6 @@ description: ''
name: HttpGharialGetVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/vertex/female/alice";
var response = logCurlRequest('GET', url);
Expand Down Expand Up @@ -4525,7 +4510,6 @@ description: ''
name: HttpGharialModifyVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
body = {
age: 26
Expand Down Expand Up @@ -4917,7 +4901,6 @@ description: ''
name: HttpGharialReplaceVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
body = {
name: "Alice Cooper",
Expand Down Expand Up @@ -5197,7 +5180,6 @@ description: ''
name: HttpGharialDeleteVertex
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var url = "/_api/gharial/social/vertex/female/alice";
var response = logCurlRequest('DELETE', url);
Expand Down Expand Up @@ -5560,10 +5542,6 @@ description: ''
name: HttpGharialAddEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
require("internal").db._drop("relation");
require("internal").db._drop("female");
require("internal").db._drop("male");
examples.loadGraph("social");
var url = "/_api/gharial/social/edge/relation";
body = {
Expand Down Expand Up @@ -5836,7 +5814,6 @@ description: ''
name: HttpGharialGetEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var any = require("@arangodb").db.relation.any();
var url = "/_api/gharial/social/edge/relation/" + any._key;
Expand Down Expand Up @@ -6287,7 +6264,6 @@ description: ''
name: HttpGharialPatchEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var any = require("@arangodb").db.relation.any();
var url = "/_api/gharial/social/edge/relation/" + any._key;
Expand Down Expand Up @@ -6747,7 +6723,6 @@ description: ''
name: HttpGharialPutEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var any = require("@arangodb").db.relation.any();
var url = "/_api/gharial/social/edge/relation/" + any._key;
Expand Down Expand Up @@ -7049,7 +7024,6 @@ description: ''
name: HttpGharialDeleteEdge
---
var examples = require("@arangodb/graph-examples/example-graph.js");
examples.dropGraph("social");
examples.loadGraph("social");
var any = require("@arangodb").db.relation.any();
var url = "/_api/gharial/social/edge/relation/" + any._key;
Expand Down
82 changes: 81 additions & 1 deletion site/content/3.12/index-and-search/analyzers.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,13 @@ The following Analyzer types are available:
- [`multi_delimiter`](#multi_delimiter): splits into tokens at user-defined character sequences
- [`stem`](#stem): applies stemming to the value as a whole
- [`norm`](#norm): applies normalization to the value as a whole
- [`ngram`](#ngram): creates _n_-grams from value with user-defined lengths
- [`ngram`](#ngram): creates _n_-grams from the value with user-defined lengths
- [`text`](#text): tokenizes text strings into words, optionally with stemming,
normalization, stop-word filtering and edge _n_-gram generation
- [`segmentation`](#segmentation): tokenizes text in a language-agnostic manner,
optionally with normalization
- [`wildcard`](#wildcard): can apply another Analyzer and creates _n_-grams to
enable fast partial matching for large strings
- [`aql`](#aql): runs an AQL query to prepare tokens for index
- [`pipeline`](#pipeline): chains multiple Analyzers
- [`stopwords`](#stopwords): removes the specified tokens from the input
Expand Down Expand Up @@ -1103,6 +1105,84 @@ db._query(`LET str = 'Test\twith An_EMAIL-address+123@example.org\n蝴蝶。\u20
~analyzers.remove(graphic.name);
```

### `wildcard`

<small>Introduced in: v3.12.0</small>

An Analyzer that creates _n_-grams to enable fast partial matching for wildcard
queries if you have large string values, especially if you want to search for
suffixes or substrings in the middle of strings (infixes) as opposed to prefixes.

It can apply an Analyzer of your choice before creating the _n_-grams, for example,
to normalize text for case-insensitive and accent-insensitive search.

See [Wildcard Search with ArangoSearch](arangosearch/wildcard-search.md#wildcard-analyzer-examples)
for an example of how to use this Analyzer with Views, and
[Inverted indexes](indexing/working-with-indexes/inverted-indexes.md#wildcard-search)
for an example using a standalone inverted index.

The *properties* allowed for this Analyzer are an object with the following
attributes:

- `ngramSize` (number, _required_): unsigned integer for the _n_-gram length,
needs to be at least `2`. It can be greater than the substrings between
wildcards that you want to search for, e.g. `4` with an expected search pattern
of `%up%if%ref%` (substrings of length 2 and 3 between `%`), but this leads to
a slower search (for `ref%` with post-validation using the ICU regular expression
engine). A value of `3` is a good default, `2` is better for short strings
- `analyzer` (object, _optional_): an Analyzer definition-like objects with
`type` and `properties` attributes

You cannot set the `offset` [Analyzer features](#analyzer-features) for this
Analyzer. You can create the Analyzer without features, or use
`["frequency", "position"]` which uses more memory but doesn't need to read
stored column values for prefix, suffix, infix, and exact queries (`something%`,
`%something`, `%something%`, `something`, but not `some%thing` or `%some%thin_`)

The set of _n_-grams that are created for each input token includes one start
_n_-gram and `ngramSize - 1` end _n_-grams using `"\uFFFD"` as start marker
respectively end marker. For example, with an `ngramSize` of `3` and the input
`"graph"`, the generated _n_-grams are:
- `"�gr"`
- `"gra"`
- `"rap"`
- `"aph"`
- `"ph�"`
- `"h�"`

**Examples**

```js
---
name: analyzerWildcard1
description: |
Create a `wildcard` Analyzer with an _n_-gram size of 4 and without enabling
Analyzer features:
---
var analyzers = require("@arangodb/analyzers");
var analyzerWildcard = analyzers.save("wildcard_4", "wildcard", { ngramSize: 4 }, []);

db._query(`RETURN TOKENS("The quick brown Foxx", "wildcard_4")`).toArray();
~analyzers.remove(analyzerWildcard.name);
```

```js
---
name: analyzerWildcard2
description: |
Use a `norm` Analyzer in a `wildcard` Analyzer to normalize the input to
lowercase and convert accented characters to their base characters before
creating trigrams from the string:
---
var analyzers = require("@arangodb/analyzers");
var analyzerWildcard = analyzers.save("wildcard_3", "wildcard", { ngramSize: 3, "analyzer": {
type: "norm", properties: { locale: "en", accent: false, case: "lower" }
} }, ["frequency","position"]);

db._query(`RETURN TOKENS("The quick brown Foxx", "wildcard_3")`).toArray();
~analyzers.remove(analyzerWildcard.name);
```

### `minhash`

{{< tag "ArangoDB Enterprise Edition" "ArangoGraph" >}}
Expand Down
Loading