索引和Cypher - 如何创建索引的节点

use*_*874 1 neo4j

我在控制台的密码中使用

create (SearchWord {word='car'})
Run Code Online (Sandbox Code Playgroud)

这适用于创建节点,但我现在如何找到该节点?我尝试启动n = node但它似乎想要一个索引.从我的创建节点开始,索引是如何创建的?

我知道索引可以手动创建,但创建节点如何访问索引?

有任何想法吗?

khi*_*ras 5

当您像示例中那样创建节点时,会返回此节点的(内部)ID,例如1.然后,您可以像这样访问节点:

START n=node(1) RETURN n
Run Code Online (Sandbox Code Playgroud)

但是,建议不要将内部节点ID用于临时访问,因为它们可能会更改(至少这是我所知的状态).因此,您有两个(实际上是三个,下面这个)选项,以便稍后查找您的节点.

  1. 将新创建的节点间接或直接连接到始终具有id 0的引用节点.然后,您可以通过图形遍历访问节点.
  2. 通过服务器扩展或嵌入式Neo4j中的Java-API创建(遗留;见下文)索引.这不适用于Cypher.

好消息是,从Neo4j 2.x开始 - 即目前的Neo4j 2.0.0-M03--有一个新的自动索引功能,它包含节点标签.在这里,您可以创建有关一对节点标签和节点属性的索引.获取标签的每个节点都将在相应的属性上编制索引.

在Neo4j 2.0.0-M03中,创建索引如下:

CREATE INDEX ON :<label>(<property>)
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样获取您的节点:

MATCH node:<label>
WHERE node.<property> = <value>
return node
Run Code Online (Sandbox Code Playgroud)

我知道这里有点抽象.我想推荐一些读物.

有关STARTCypher条款的 文档:http://docs.neo4j.org/chunked/milestone/query-start.html有关新"模式"索引的文档:http://docs.neo4j.org/chunked/milestone/query-架构的index.html

最后一些 - 正如我所发现的 - 关于模式索引的非常有用的幻灯片:http://www.neo4j.org/develop/labels,第二个演示文稿(标题为Neo4j 2.0中的标签和索引).有一些简短易懂的例子.

我希望能让你前进!

  • 你可以看看http://www.terminalstate.net/2013/05/labels-and-schema-indexes-in-neo4j.html (2认同)