gpt4 book ai didi

sql - 如何在关系类型上创建索引 (neo4j)

转载 作者:行者123 更新时间:2023-12-03 10:23:38 24 4
gpt4 key购买 nike

我是 neo4j 的新手。我在 Windows 下运行 shell。我创建了一个名为:user 的节点,并且在 id 上有索引。用户有 id 和 name 属性。

我建立了一种称为 friend 的关系。 (用户 1,用户 2)

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 手动为关系创建索引?

最佳答案

当您键入:schema 时,您看到的索引是Neo4j 中的新型索引。似乎 node_auto_indexingrelationship_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 已经支持数据库模式中的唯一约束已有一段时间了:

http://neo4j.com/docs/stable/query-constraints.html

关于sql - 如何在关系类型上创建索引 (neo4j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28922273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com