neo4j自动索引是否适用于MATCH子句?

时间:2014-06-24 10:02:10

标签: lucene neo4j

我们已为节点和关系启用了自动索引。默认情况下,NEO4J将创建一个名为" node_auto_index"的索引。对于节点和" relationship_auto_index"为了关系。但MATCH查询似乎正在执行(与Elasticsearch中的类似数据集相比)。看起来他们没有使用索引。

有没有办法让MATCH子句使用auto_index?

我们也尝试查看架构索引。看起来它只能创建节点索引。我们的查询在关系上使用了一些属性,因此即使在使用模式索引之后,查询在性能上也是不可接受的。 有没有办法创建架构关系索引?

1 个答案:

答案 0 :(得分:0)

node_auto_index不用于匹配,您必须使用start子句来访问该旧索引。

e.g。

START user=node:node_auto_index(name="Siddarth")
MATCH (user)-[:KNOWS]->(friend)
RETURN friend

在Neo4j 2.0中,您可以创建索引或唯一约束

create index on :User(name);

然后在MATCH中使用它

MATCH (user:User {name:"Siddarth"})-[:FRIEND]->(friend)
RETURN friend

另见手册:http://docs.neo4j.org/chunked/milestone/query-schema-index.html 和cypher refcard:http://neo4j.org/resources/cypher