我目前正在使用 Neo4j 和 Neography 构建一些东西,并且想知道什么是首选:使用 traverse 方法或 Cypher 查询?
就个人而言,我喜欢 Cypher,但我不知道哪个更好/性能更高
我刚刚为 Cypher vs Core API 和 Traverser 框架的朋友之友查询创建了一个基准,该图上有大约 1 个 mio 节点。FOAF 查询不是很复杂,但对于 neo4j 等图形数据库来说是一个很好的用例。
您可以看到 Cypher 的性能比核心 API 差得多。
我相信他们都有自己的优势,而且 Cypher 可能已经更直观地表达您的查询。如果您喜欢,请尝试使用 Cypher 形成您的查询,并且如果性能满足您的要求,那么一切都很好!如果没有,那么也许在遍历框架中尝试一下。
正如 Matthias 所指出的,Cypher 确实很直观,但是我有以下建议:
如果它是微不足道的东西,那就去 Cypher,它更容易编写(实际上是一种乐趣)并且不应该有任何大的性能损失。但是,一旦您有更大的匹配或条件查询,如果您使用自定义遍历器甚至 Gremlin,拥有图的领域知识可能会显着提高性能