当我尝试仅使用一个过滤器在 ArangoDB 中执行内部联接时,如下所示:
FOR doc1 in catalogue
FOR doc2 in RepoNodes
FOR doc3 in RepoEdges
FOR doc4 in RepoNodes
FOR doc5 in RepoEdges
FOR doc6 in RepoNodes
FOR doc10 in catalogue
FOR doc11 in similarities
FOR doc12 in clearance
FILTER doc1.trackid== "TRAAAAK128F9318786" AND doc1.trackid==doc2.mongodbsongs
AND doc3._from==doc2._id AND doc3._to ==doc4._id AND doc5._from==doc4._id and doc6._id ==doc5._to
AND doc10.trackid== doc6.mongodbsongs
AND doc11._from==CONCAT("Tracks/",doc6.neo4jSong)
AND doc6.redisclearance== doc12._key
return {doc10,doc11,doc12}
我注意到索引被忽略了..我的意思是..它执行完整的集合扫描。如果我序列化相同的查询,它会完美运行。我不明白为什么..如果我在最后 4 个 FOR 之前停下来没关系.. 问题出在哪里?为什么需要完整的收藏扫描?