是否可以在 arangodb 中事先不知道确切结构的情况下索引所有属性?

Is it possible to index all attributes without knowing exact structure beforehand in arangodb?

我有一个像这样的简单文档集合

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

我想分别索引 所有 个键。

但是目前的arangodb UI只提供了一个用逗号分隔的属性列表,例如。 [key1,key2] 作为输入。所以我必须事先定义这些属性

有没有类似*的东西告诉arango索引所有属性。

标准索引不支持通配符对所有属性进行索引(索引定义中的多个路径将创建组合索引,而不是所有键的并集)。但是你可以创建一个 ArangoSearch View 并让它索引所有属性:

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

然后将一些文档添加到集合中coll:

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

最后查询View(这里叫someView),使用默认的identityAnalyzer:

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

如您所见,所有属性(包括嵌套属性)都通过在顶层使用 includeAllFields 选项进行索引。

更多信息:https://www.arangodb.com/docs/stable/arangosearch.html