私は現在、Neo4j と Neography を使用して何かを構築しており、トラバース メソッドとサイファー クエリのどちらを使用するのが好ましいか疑問に思っていました。
個人的にはCypherが好きですが、どちらが優れている/パフォーマンスが高いのかわかりません
約 100 万ノードのグラフで、Cypher vs Core API と Traverser Framework のフレンド オブ フレンド クエリのベンチマークを作成しました。FOAF クエリはそれほど複雑ではありませんが、neo4j のようなグラフ データベースの適切な使用例です。
Cypher のパフォーマンスがコア API よりもはるかに悪いことがわかります。
どちらにもそれぞれのスイート スポットがあると確信しており、Cypher はクエリをより直感的に表現できるようになっていると思います。Cypher を使用してクエリを作成してみてください。それが好みであり、パフォーマンスが満足できる場合は、それで問題ありません。そうでない場合は、トラバーサル フレームワークで試してみてください。
Matthias が指摘したように、Cypher は確かに直感的ですが、次の推奨事項があります。
ささいなことであれば、Cypher を使用すると、作成が簡単になり (実際には喜びです)、パフォーマンスが大幅に低下することはありません。ただし、一致または条件付きクエリが大きくなると、カスタム トラバーサーまたは Gremlin を使用すると、グラフのドメイン知識があればパフォーマンスが大幅に向上する可能性があります。