管理neo4j索引的生命周期(CRUD)

时间:2013-07-19 06:12:02

标签: indexing neo4j cypher

我对数据库的经验有限(且脱节),而且几乎没有索引。基于网络搜索,阅读书籍和与ORM合作,我的理解可归纳如下:

  • 数据库中的索引类似于书籍索引,因为它列出书中的“东西”并告诉您在哪里找到它。这有助于提高查找效率(这很可能不是唯一的好处)
  • 在(至少某些)RDBMS中,主键字段会自动编入索引,因此您永远不必直接操作它们。

我正在修补neo4j,似乎你必须慎重考虑索引,所以现在我需要了解它们,但我找不到明确的答案:

  • 如何在neo4j中管理索引?
  • 我知道有自动索引,它是如何工作的?
  • 如果您选择手动管理自己的索引,您可以控制哪些索引?也许,索引名称等?

非常感谢答案或指向答案,而不是。

1 个答案:

答案 0 :(得分:2)

如果你想要数据的索引引擎功能,Neo4j使用Apache Lucene。您可以索引节点和/或关系 - 索引可帮助您查找特定实例/节点或关系集。

手动编制索引:

您可以根据需要创建任意数量的节点/关系索引,并可以为每个索引指定名称。也可以控制配置,即您是否需要完全匹配(默认)或Lucenes全文索引支持。获得索引后,只需向其添加节点/关系以及要编制索引的键/值。但是,如果对节点属性进行更改,则需要自己处理索引中的“更新”数据。

自动编制索引:

如果你在neo4j.properties文件中打开它们,你会得到一个节点索引和一个关系索引。您可以指定要索引的属性,从打开它们开始,将自动为您管理索引,即在此点之后创建的任何节点都会添加到索引中并自动更新/删除。

更多阅读: http://docs.neo4j.org/chunked/stable/indexing.html

以上适用于版本< 2.0

2.0在索引本身的概念上增加了更多,你可能想要通过

http://www.neo4j.org/develop/labels

http://blog.neo4j.org/2013/04/nodes-are-people-too.html

希望有所帮助。