ArangoDB适用于稍微不同寻常的要求

时间:2019-04-01 23:01:36

标签: arangodb

我有以下要求:

  1. 具有在查询中联接的多个集合(通常为SQL INNER JOIN样式)。
  2. 对文档的搜索包括a)查找完全匹配和b)与整数值进行范围匹配(如果需要,可以将其存储为文本)。搜索稀疏,因此没有b树。

不需要词干,排名或其他处理。就像这样简单:

  

请给我collection1中的所有文档,其中field1包含1或2,field2包含99和100,field3包含1000到1003之间的值...将其加入到collection2其中...

在ArangoDB中是否有可能(我假设使用ArangoSearch视图)?如果是这样,谁能给我正确的方向(表现)?

1 个答案:

答案 0 :(得分:0)

虽然性能确实取决于数据的数量和类型,但假设性能无法按预期的那样选择数据,我会尝试:

每个字段1和2的哈希索引

字段3上的跳过列表索引

由于您提到数据稀疏,所以我将尝试在适当的索引上打开稀疏选项。这将导致Arango仅对索引(或字段集)上的字段具有非空值的数据编制索引。此外,如果非null数据是唯一的,我将进一步尝试稀疏的唯一索引。

最后,您的里程将取决于我之前提到的数据,因此将是可补救的。无论哪种方式,都可以找到关于索引的Arango文档here

哦,在忘记之前,与SQL不同,语句在AQL语句中出现的顺序确实有所不同,因此请尝试尽早过滤尽可能多的数据。

打猎愉快!