在这两者之间执行查询的方式是否存在显着差异?
START n=node(*) RETURN n
和
MATCH n RETURN n
对于其他更具选择性的查询,(例如扫描具有特定值的特定属性的所有节点)我可以使用START子句通过auto_index找到这些节点,或者我可以匹配它们。是否存在差异,或者与另一个一样好?
答案 0 :(得分:1)
首先,Neo4j 2.0支持节点的架构索引,而旧版本支持传统索引。
所以这取决于你是否使用Neo4j 2.0,你可以直接从MATCH子句开始,并在一些节点属性上附加一个WHERE,它将直接引用模式索引。
如果您使用具有自动索引功能的较旧的Neo4j版本,则必须使用START来使用索引。
此外,您还需要特别提及索引名称和进行索引的属性。但在MATCH的情况下,模式索引会自动引用,无需明确提及。
另外需要注意的一点是,当前架构索引不适用于关系,但仅适用于节点。模式索引仅支持全名搜索。基于Lucene的外卡搜索尚未受到架构索引的支持。因此,根据您的使用情况,您需要选择需要使用的索引类型,并根据您可以使用START或MATCH。