我在控制台的cypher中使用
create (SearchWord {word='car'})
这适用于创建节点,但我现在如何找到该节点?我尝试启动n = node但它似乎想要一个索引。从我的创建节点开始,索引是如何创建的?
我知道索引可以手动创建,但创建节点如何访问索引?
有什么想法吗?
答案 0 :(得分:5)
当您像示例中那样创建节点时,将返回此节点的(内部)ID,例如1
。然后,您可以像这样访问节点:
START n=node(1) RETURN n
但是,建议不要将内部节点ID用于临时访问,因为它们可能会更改(至少这是我所知道的状态)。因此,您有两个(实际上是三个,下面这个)选项,以便稍后查找您的节点。
好消息是,从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
我知道这里有点抽象。我想建议你读一些。
START
Cypher条款的文档:http://docs.neo4j.org/chunked/milestone/query-start.html
有关新“架构”索引的文档:http://docs.neo4j.org/chunked/milestone/query-schema-index.html
最后一些 - 正如我所发现的 - 关于模式索引的非常有用的幻灯片:http://www.neo4j.org/develop/labels,第二个演示文稿(在Neo4j 2.0中标题标签和索引)。有一些简短易懂的例子。
我希望你能帮助你!