gpt4 book ai didi

java - 如何存储和检索 Neo4j 索引

转载 作者:行者123 更新时间:2023-12-01 23:50:28 28 4
gpt4 key购买 nike

我正在做一个neo4j相关的项目,不太了解neo4j中的“索引”。在关系数据库中,我们在永久磁盘上有表和索引。

我假设 Neo4j 也是如此,节点、关系(边)和索引是持久的。我对此可能是错的。

在此示例中,https://github.com/mrhooray/neo4j-sample/blob/master/src/EmbeddedNeo4jWithIndexing.java

public class EmbeddedNeo4jWithIndexing {
private static final String DB_PATH = "/home/mrhooray/Documents/neo4j_db/";
private static final String USERNAME_KEY = "username";
private static GraphDatabaseService graphDb;
private static Index<Node> nodeIndex;
//...

public static void main(String[] args) {
//...
// index is created as following
nodeIndex = graphDb.index().forNodes("nodes");
}

// and used to insert data
private static Node createAndIndexUser(final String username) {
Node node = graphDb.createNode();
node.setProperty(USERNAME_KEY, username);
nodeIndex.add(node, USERNAME_KEY, username);
return node;
}
}

EmbeddedNeo4jWithIndexing 是图数据库的抽象。但是,如果我创建并填充图形数据库然后关闭程序会怎样?然后我想再次使用相同的索引访问相同的数据库,我是否只创建另一个EmbeddedNeo4jWithIndexing对象?如何取回原始索引?

通话

nodeIndex = graphDb.index().forNodes("nodes");
又来了?似乎不是这样的。

非常感谢!

最佳答案

您的代码看起来正确。 index().forNodes("nodes"); 基本上是一个创建或获取操作,如果索引不存在,它将创建索引,否则它将返回索引对象该索引名称。

在您的代码中,请确保您正在使用事务,因为如果不这样做,您实际上不会保留任何信息。否则,要在下次需要时执行查找,只需执行nodeIndex.get(USERNAME_KEY, username),它将返回映射到索引中该节点的所有节点。

关于java - 如何存储和检索 Neo4j 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381432/

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