【问题标题】:Index used, other field in query gets ignored已使用索引,查询中的其他字段被忽略
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 2019-12-03
    • 1970-01-01
    • 2013-09-30
    • 2010-10-31
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多