【发布时间】:2018-03-22 04:35:06
【问题描述】:
我在字段“a,b[*]”的集合“coll2”上有一个非唯一的非稀疏散列索引。当我在子查询中查询此集合时:
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 时它不会这样做,即使使用两个字段索引也是如此。解释查询表明,在这种情况下,它将使用两个字段索引,然后为不在索引中的字段创建一个过滤器作为简单表达式。是bug吗?
【问题讨论】:
-
能否打印查询优化器的输出(UI 上的
Explain按钮而不是Execute) -
这是一个错误。感谢您尝试提供帮助。
标签: arangodb