Database Neo4j:逐步创建自动索引
我正在创建一个新的Neo4j数据库。我有一个名为User的节点类型,我想要一个关于UserIdentifier和EmailAddress属性的索引。当数据库是新的时,如何设置索引?我注意到在neo4j.properties文件中似乎支持创建索引。然而,当我将这些设置为Database Neo4j:逐步创建自动索引,database,indexing,neo4j,cypher,database-indexes,Database,Indexing,Neo4j,Cypher,Database Indexes,我正在创建一个新的Neo4j数据库。我有一个名为User的节点类型,我想要一个关于UserIdentifier和EmailAddress属性的索引。当数据库是新的时,如何设置索引?我注意到在neo4j.properties文件中似乎支持创建索引。然而,当我将这些设置为 # Autoindexing # Enable auto-indexing for nodes, default is false node_auto_indexing=true # The node property key
# Autoindexing
# 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=EmailAddress,Identifier
并添加一个节点并进行查询以查找我知道存在的标识符
START n=node:Identifier(Identifier = "USER0")
RETURN n;
然后我得到一个
MissingIndexException: Index `Identifier` does not exist
如何创建索引并在开始查询中使用它?我只想使用配置文件和密码来实现这一点。i、 e.目前我只在电动工具控制台中玩。将以下内容添加到neo4j.properties文件中
# Autoindexing
# 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=EmailAddress,Identifier
为节点创建自动索引
neo4j-sh (0)$ index --create node_auto_index -t Node
检查它们是否存在
neo4j-sh (0)$ index --indexes
应该回来
Node indexes:
node_auto_index
查询时,请使用以下语法指定索引
start a = node:node_auto_index(Identifier="USER0")
return a;
由于节点是自动索引的,因此索引的名称是node\u auto\u index
这一信息来源于报纸底部的一条评论
更新
如果您想索引在自动索引打开之前存在的当前数据(其中Property_Name是索引的名称)
在Neo4j 2.0中,应该使用标签和新约束
CREATE CONSTRAINT ON (n:User) ASSERT n.Identifier IS UNIQUE
CREATE CONSTRAINT ON (n:User) ASSERT n.EmailAddress IS UNIQUE
如果电子邮件不是每个用户唯一的,只需创建一个普通索引即可:
CREATE INDEX ON :User(EmailAddress)
索引主要针对用于where条件的属性。在Neo4j 2.0中,索引现在很容易创建 在标签上创建索引
CREATE INDEX ON :Person(name)
DROP INDEX ON :Person(name)
在标签上放置索引
CREATE INDEX ON :Person(name)
DROP INDEX ON :Person(name)
创建唯一性约束
CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE
DROP CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE
删除唯一性约束
CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE
DROP CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE
要在neo4j浏览器中列出所有索引和约束,以下命令非常有用
:schema
列出特定标签的索引和约束,包括:
:schema ls -l :YourLabel
使用。页面加载后,选择console选项卡。你可以在那里执行shell命令。这个答案非常古老,我不确定这是否仍然是最好的方法。对此进行一些澄清是很好的。请务必在下面看到Boggle的答案-在2.0+中,索引的工作方式要简单得多-正如您所说的,这是一个新的数据库,所以希望可以选择使用最新的neo4j版本。。。