我对neo4j很新。我在Windows下运行shell。 我创建了一个名为:user的节点,我有id的索引。用户有id和name属性。
我创建了一个名为friends的关系。 (user1,user2)
neo4j.properties设置为:
# Enable auto-indexing for nodes, default is false
node_auto_indexing=true
# The node property keys to be auto-indexed, if enabled
node_keys_indexable=id
# Enable auto-indexing for relationships, default is false
relationship_auto_indexing=true
# The relationship property keys to be auto-indexed, if enabled
relationship_keys_indexable=user1,user2
我的问题是:
1-当我输入:: schema ls时,它显示:
Indexes
ON :User(id) ONLINE
No constraints
为什么不显示关系的索引?
2-如何使用shell手动创建关系的索引?
答案 0 :(得分:2)
当您键入:schema
时,您看到的索引是Neo4j中的新式索引。好像node_auto_indexing
和relationship_auto_indexing
(以及*_keys_indexable
)配置属性似乎是Neo4j遗留索引的一部分:
http://neo4j.com/docs/milestone/auto-indexing.html
我对遗留索引不太熟悉,但在新式索引中没有对关系建立索引。在该范例中,您首先通过索引找到节点并遵循那里的关系,但是没有首先找到节点就没有直接查询关系。
您可以在此处阅读有关旧版索引的内容:
http://neo4j.com/docs/milestone/indexing.html
但我会复制/粘贴一段有用的文章:
"从Neo4j 2.0开始,这不是在Neo4j中索引数据的首选方法,而是建议在数据库模式中定义索引。"
"但是,对遗留索引的支持仍然存在,因为某些功能(例如唯一性约束)尚未由新索引处理。"
我不认为这完全正确,但是,因为Neo4j在数据库模式中支持了一段时间内的唯一约束: