我想了解为什么我的Cypher查询运行速度如此之慢(仅5000个节点需要2-5秒)。该查询旨在查找一个个人网络内可到达的所有工作(他的朋友或朋友的朋友在同一家公司工作的工作)。
以下是查询:
Start current_profile= node:node_auto_index(neoid_unique_id = "Profile:1")
Match current_profile-[r:friendships*0..2]->friends-[:roles]->company-[:positions]->jobs
return distinct company.fmj_id
我尝试简化查询以查看我的错误,即使是这个简单的查询也需要太长时间:
START root=node(0)
Match root-[:job_subref]->j-[:jobs]->jobss
return jobss
我有问题吗?
我正在使用基于neography gem的neoid。
with
语句来拆分你的match
语句,即首先匹配current_profile-->friends
,然后是friends-->company
,最后是company-->jobs
,全部在一条 Cypher 查询中完成。 - npobedina