Database 索引节点并测量Neo4j中的查询执行时间

Database 索引节点并测量Neo4j中的查询执行时间,database,neo4j,graph-databases,sql-execution-plan,Database,Neo4j,Graph Databases,Sql Execution Plan,数据集包含各种ID,每个ID具有不同时间戳和执行者的许多事件 比如说 ID, DateStamp, Assignment_Group ID1, 10:00:00, Group1 ID1, 11:14:36, Group2 ID2, 11:23:34, Group2 ID3, 1:34,23, Group3 我已经为每个属性创建了节点,并通过关系将它们链接为 try (Transaction tx = db.beginTx();) { myNode1[i] = db.createNod

数据集包含各种ID,每个ID具有不同时间戳和执行者的许多事件

比如说

ID, DateStamp, Assignment_Group
ID1, 10:00:00, Group1
ID1, 11:14:36, Group2
ID2, 11:23:34, Group2
ID3, 1:34,23, Group3

我已经为每个属性创建了节点,并通过关系将它们链接为

try (Transaction tx = db.beginTx();) {
    myNode1[i] = db.createNode();
    myNode1[i].setProperty("ID", input_data[0]);
    myNode2[i] = db.createNode();
    myNode2[i].setProperty("DateStamp", input_data[1]);
    relation1=myNode1[i].createRelationshipTo(myNode2[i], OCCURS_AT);
    relation1.setProperty("occuredAt", "some time");
    myNode3[i] = db.createNode();
    myNode3[i].setProperty("Assignment_Group", input_data[2]);
    relation2=myNode1[i].createRelationshipTo(myNode3[i], RESOLVED_BY);
    relation2.setProperty("ResolvedBy", "some group");
    tx.success();
}
我想在myNode1[]的基础上对记录进行索引。想知道这是否可行以及如何实现

还可以测量查询执行时间吗?目前的做法似乎不太好

long time = System.currentTimeMillis();
result = engine.execute("match (n {Incident_ID: 'ID1'}) return n.Incident_ID");
System.out.println(System.currentTimeMillis() - time + "ms");

提前感谢。

您可以轻松地为节点编制索引。您可以为不同类型的节点添加标签,并使用模式索引(neo4j 2.0及更高版本)或使用传统索引。这在Neo4j手册、章节和中都有描述


除此之外,您真的需要为日期戳创建节点吗?考虑把DateStamp属性放在关系发生时。

谢谢。吉姆·比亚德。测量查询执行时间的正确方法是什么?