的Neo4j的模式索引使用的Neo4j V 3.1.2不适用的关系,所以你需要使用传统的指标来代替。 APOC Procedures支持这些,并且将是按类型查找关系的最简单方法。当你有机会利用这个优势时,肯定会安装APOC。
但是,APOC针对这些索引的方法是按类型和属性,而不是单独的类型。这可能需要您为该类型的所有关系添加占位符属性,以便将它们添加到手动索引中并在稍后查询。
事情是这样的:
MATCH (:node1)-[r:TYPE1]->(:node2)
SET r.indexed = true
CALL apoc.index.addRelationship(r,['indexed'])
RETURN DISTINCT 1
一旦这样做了,你可以使用APOC查找通过关系指数关系:
CALL apoc.index.relationships('TYPE1','indexed:true') YIELD rel
WITH startNode(rel) as a, endNode(rel) as b
RETURN a.field1, b.field2
您还可以使用*:*
在上面的查询的属性查找以节省一些击键。
请注意,这些索引是手动的,不是自动的,因此您需要将此应用于任何新的:要添加的TYPE1关系。
正在实现自动更新APOC中的手动索引的支持,一些问题仍在解决之中,我不认为这些说明已被添加到文档中。
也许尝试在暗号使用提示https://neo4j.com/docs/developer-manual/current/ cypher/query-tuning /使用/ –
我可能忽略了一些东西,但我研究过,但是提示强制索引使用节点或节点扫描。我需要强制使用关系类型作为优选的限制因素。 – AndyP1970