gpt4 book ai didi

java - 在 Java 的 NEO4J 中按名称选择节点

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:17 25 4
gpt4 key购买 nike

我正在使用嵌入 Java 的 NEO4J 工作。假设有一个名为 NODE_abc 的节点,它有一些属性。我想选择节点,以便我可以使用 getProperty() 获取属性。

我想选择 NODE_abc 作为 mynode,这样我就可以使用 mynode.getProperty() 来获取节点“NODE_abc”的属性。

节点名称“NODE_abc”存储在一个变量中,说 String str="NODE_abc"

最佳答案

我同意 tstorms 关于密码查询的索引和执行。然而,我要指出的是,节点标识符是短暂的。它们在有限的时间窗口内有用,但随后会被回收。因此,一个节点在多次执行(或垃圾收集器运行后)中不一定具有相同的标识符。

通常,在 Neo4J 中,如果您需要通过属性查询节点(而不是通过遍历),您会创建一个索引。例如,您可以创建一个名为“actors”的索引:

IndexManager index = graphDb.index();
Index<Node> actors = index.forNodes( "actors" );

如果索引不存在,此命令将创建它。否则,它返回现有索引。

但是,与 SQL 不同,在 Neo4J 中,您必须手动将节点添加到索引中:

Node reeves = graphDb.createNode();
reeves.setProperty( "name", "Keanu Reeves" );
actors.add( reeves, "name", reeves.getProperty( "name" ) );

然后您可以查询与指定查询匹配的所有节点的索引(索引不保证唯一性):

IndexHits<Node> hits = actors.get( "name", "Keanu Reeves" );
Node reeves = hits.getSingle();

来源:https://neo4j.com/docs/java-reference/current/indexing/#indexing-create

请注意,Neo4J 索引实际上并不从节点读取属性,您必须明确告诉它如何 inode 。您可以提供任意一条信息来索引未存储在节点上的信息,但我不推荐这样做。

关于java - 在 Java 的 NEO4J 中按名称选择节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com