如何使用neo4j 2.0标签的自动索引

时间:2013-04-27 14:41:47

标签: neo4j cypher

如何使用neo4j 2.0中的新标签功能处理自动索引。将创建一个自动索引,在用户对象中说“name”继续为所有对象创建一个通用名称索引,或者有一种方法可以指定它应该只用于用户类型/标签。

是否应该在某种原子密码交易中创建对象和索引?

示例用例可以是具有唯一不区分大小写的用户名索引的用户对象。

2 个答案:

答案 0 :(得分:1)

neo4j 2.0中的索引将主要隐藏。可以为label +属性创建索引,以便具有该标签和属性的节点将在该索引中编入索引。

然而,尚未添加任何约束(如唯一性),但它正在开发中,也不支持f.ex.不区分大小写。点击此处http://docs.neo4j.org/chunked/preview/query-schema-index.html

答案 1 :(得分:1)

在2.0标签中是一个很棒的功能。我不建议自动索引思想。通过标签上的自定义索引,您可以实现对象的唯一创建。流程是这样的 首先在标签上创建索引,假设“用户”是标识用户的标签。

create index on :User(username)

现在,每个节点上的“用户名”都有一个索引,标签为“用户” 要创建一个唯一的节点,您需要在创建时使用某些内容。 目前没有

这样的东西
create unique (n:User {username:"tsartsaris"})

但你可以使用

CREATE UNIQUE (b)-[:ISUSER]->(m:User {username:"tsartsaris"})

这个独特的创作将搜索带有标签的m:用户和用户名:tsartsaris,如果它不存在,那么它将创建它。如果再次运行代码,它将返回现有节点,不会创建新节点。 如果使用2.0 m2,则可以使用merge作为创建唯一节点的方法。

  merge (n:User {username:"tsartsaris"})
  RETURN n

merge将在您的图表中搜索匹配项,如果它发现它将返回它,否则将创建该节点并将其返回。