和关系数据库一样,Neo4j同样可以创建索引来加快查找速度。
在关系数据库中创建索引需要索引字段和指向记录的指针,通过索引可以快速查找到表中的行。
在Neo4j中,其索引是通过属性来创建,便于快速查找节点或者关系。
手动索引先来说一下怎样创建手动索引。
创建索引采用显示创建,就像添加节点一样添加索引项,一个索引项标识的是一个节点或者关系的属性值。
索引项中除了包含属性值,还存储了对正在索引的属性具有特定值的一个或多个节点的引用。
以上是一个使用email属性作为键值指向节点的索引。
先通过下面代码添加数据。
try (Transaction tx = graphDb.beginTx()) {
// 添加数据
Label label = Label.label("Student");
Node node1 = graphDb.createNode(label);
node1.setProperty("name", "王翠花");
node1.setProperty("email", "hua@qq.com");
Node node2 = graphDb.createNode(label);
node2.setProperty("name", "李小明");
node2.setProperty("email", "ming@163.com");
Node node3 = graphDb.createNode(label);
node3.setProperty("name", "杨小红");
node3.setProperty("email", "hong@gmail.com");
node1.createRelationshipTo(node2, RelTypes.IS_FRIEND_OF);
node1.createRelationshipTo(node3, RelTypes.IS_FRIEND_OF);
// 提交事务
tx.success();
}