在 Neo4j 中,我需要找到具有给定属性值的所有关系,独立于关系类型:
WITH ["1651365", "1188654", "1151147", ...] AS relIds
MATCH ()-[r]->() WHERE r.myId IN relIds
RETURN TYPE(r) AS type, properties ( r ) AS props;
这个查询有效,但速度很慢。如果我对其进行分析,我发现它基于全面扫描(1400 万个关系)。
问题是没有办法为所有关系类型定义索引(我可以对类型列表执行相同操作,引擎将使用为其定义的索引myId
)。
有解决办法吗?使用时elementId()
,引擎会执行查找操作,并且速度非常快,但文档不鼓励这样做(他们说内部ID在删除后会被重用)。