我目前开始使用Neo4J,它是查询语言密码。 我有一个多重查询,遵循相同的模式。优化Cypher查询
我做一个SQL的数据库和Neo4j的之间的一些比较。
在我的Neo4j Datababase我HABE一种类型的标签(人)和一个类型的关系(友谊)。该人拥有个人身份,姓名,电子邮件,电话。 现在我想拥有这个朋友的第n个学位。我也想过滤出那些也是较低学位朋友的人。 例如,如果我想搜索朋友3度,我想过滤掉那些也是朋友第一和/或第二度的朋友。
这里我的查询类型:
MATCH (me:person {personID:'1'})-[:FRIENDSHIP*3]-(friends:person)
WHERE NOT (me:person)-[:FRIENDSHIP]-(friends:person)
AND NOT (me:person)-[:FRIENDSHIP*2]-(friends:person)
RETURN COUNT(DISTINCT friends);
我发现类似的东西的地方。
此查询适用。
我的问题是,查询的这种模式是非常慢,如果我搜索了更高程度的友谊和/或如果人数变得更加。
所以,我真的很感激它,如果somemone可以帮助我优化这个。