使用的索引,查询中的其他字段被忽略

时间:2018-03-19 21:17:20

标签: arangodb

我在集合上有一个非唯一的非稀疏哈希索引" coll2"在字段" a,b [*]"。当我在子查询中查询此集合时:

    FOR r IN coll
      RETURN COUNT(
        FOR rr IN coll2 
          FILTER rr.a == true &&
                 r.id IN rr.b &&
                 r.id IN rr.c 
          RETURN null
    )  

我得到一个结果,好像忽略了字段c上的过滤器。解释查询确认使用了我的哈希索引。如果我在字段" a,b [*],c [*]"上创建另一个非唯一的非稀疏哈希索引,则结果与预期一致,并解释查询确认我的新索引已被使用。

我可以确认,在直接查询coll2时,即使使用两个字段索引也不会这样做。解释查询表明,在这种情况下,它将使用两个字段索引,然后创建一个过滤器作为不在索引中的字段的简单表达式。这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

这是一个错误。这是github上的参考https://github.com/arangodb/arangodb/issues/4900