1

我在控制台中使用密码

create (SearchWord {word='car'})

这适用于创建节点,但我现在如何找到该节点?我试过 start n=node 但它似乎想要一个索引。从我的创建节点如何创建索引?

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

有任何想法吗?

4

1 回答 1

5

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

START n=node(1) RETURN n

但是,不建议将内部节点 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>)

然后,你可以像这样得到你的节点:

MATCH node:<label>
WHERE node.<property> = <value>
return node

我知道这有点抽象。我想向你推荐一些读物。

关于STARTCypher 子句的文档:http ://docs.neo4j.org/chunked/milestone/query-start.html 关于新“模式”索引的文档:http: //docs.neo4j.org/chunked/milestone/query-架构索引.html

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

我希望这能让你继续前进!

于 2013-08-05T08:46:24.250 回答