我是 Neo4j 的新手,目前我正在尝试在其上插入一些图表,如下 https://github.com/neo4j/neo4j/blob/2.0.0/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4jWithNewIndexing.java我已经构建了一个测试示例作为独立的 java 应用程序。
节点和关系正在被插入,我可以这么说,因为每次我运行代码时,都会在查询中检索到一个 ID 为“555”的节点。但是我在 Web UI 上找不到任何节点或关系。我的示例和 Web UI 都应该读取相同的数据,据我所知,这是通过以下行完成的:
`private static final String DB_PATH = "http://localhost:7474/db/data";`
你能告诉我我做错了什么吗?非常感谢
以防万一您需要它,这是我的完整代码
public class EmbeddedNeo4jWithNewIndexing {
private static final String DB_PATH = "http://localhost:7474/db/data";
public static void main(final String[] args) {
System.out.println("Starting database ...");
GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
{
try (Transaction tx = graphDb.beginTx()) {
Label label = DynamicLabel.label("User");
for (int id = 0; id < 1000; id++) {
Node userNode = graphDb.createNode(label);
userNode.setProperty("username", "user" + id + "@neo4j.org");
}
System.out.println("Users created");
tx.success();
}
}
{
Label label = DynamicLabel.label("User");
int idToFind = 555;
String nameToFind = "user" + idToFind + "@neo4j.org";
try (Transaction tx = graphDb.beginTx()) {
try (ResourceIterator<Node> users
= graphDb.findNodesByLabelAndProperty(label, "username", nameToFind).iterator()) {
ArrayList<Node> userNodes = new ArrayList<>();
while (users.hasNext()) {
userNodes.add(users.next());
}
for (Node node : userNodes) {
System.out.println("The username of user " + idToFind + " is " + node.getProperty("username"));
}
tx.success();
}
}
}
System.out.println("Shutting down database ...");
graphDb.shutdown();
}
}
最佳答案
我认为问题出在你的 DB_PATH 声明上。这不是 URL,而是本地计算机可访问的文件夹的路径。我对您的代码成功感到有点惊讶,但您绝对没有连接到与通过 Web UI 工作时相同的数据库。找到 graph.db 文件夹的位置(这是图形数据库根文件夹的默认名称)并将 DB_PATH 设置为该文件夹的路径。我希望这能解决您的问题。
关于java - Neo4j Web UI 上没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26038903/