次のように、フィルターを 1 つだけ使用して 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 の前に停止しても問題ありません..どこに問題がありますか? コレクション全体のスキャンが必要なのはなぜですか?