Можно ли проиндексировать все атрибуты, не зная заранее точной структуры в arangodb? - PullRequest
0 голосов
/ 18 октября 2019

У меня есть коллекция с такими простыми документами, как этот

{
key1:value,
key2:value2,
....
}

Я бы хотел индексировать все ключи отдельно.

Но текущий пользовательский интерфейс arangodb предоставляет толькосписок атрибутов, разделенных запятой, например. [key1,key2] в качестве ввода. Поэтому я должен заранее определить эти атрибуты

Есть ли что-то вроде *, чтобы сказать arango проиндексировать все атрибуты.

1 Ответ

1 голос
/ 18 октября 2019

Стандартные индексы не поддерживают подстановочные знаки для индексации всех атрибутов (и несколько путей в определении индекса создадут объединенный индекс, а не объединение всех ключей). Но вы можете создать ArangoSearch View и позволить ему индексировать все атрибуты:

{
  "type": "arangosearch",
  "links": {
    "coll": {
      "analyzers": [
        "identity"
      ],
      "includeAllFields": true
    }
  }
}

Затем добавить несколько документов в коллекцию coll:

  • {"foo": 1}
  • {"bar": 2}
  • {"baz": {"nested": 3} }

И, наконец, запросить представление (здесь оно называется someView), используя стандартный анализатор identity:

FOR doc IN someView
  SEARCH doc.baz.nested == 3
  RETURN doc

Как видите, все атрибуты, включая вложенные, индексируются с помощью опции includeAllFields на верхнем уровне.

Дополнительная информация: https://www.arangodb.com/docs/stable/arangosearch.html

...