0

我在数据库方面的经验有限(并且脱节),几乎没有索引方面的经验。基于网络搜索、阅读书籍和使用 ORM,我的理解可以总结如下:

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

我正在修补 neo4j,看来您必须对索引进行深思熟虑,所以现在我需要了解它们,但我找不到明确的答案:

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

非常感谢答案或指向答案的指针,谢谢。

4

1 回答 1

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

希望有帮助。

于 2013-07-19T07:17:16.420 回答