我唯一了解的索引是属性索引(这些索引是在特定标签(节点类型)上创建的)。但是,我有一些疑问。
预先感谢
答案 0 :(得分:0)
Neo4j有两个索引系统。
更现代的索引称为“模式索引”,当在查询中提供给定的属性和标签时,这些索引是自动的,适用于给定标签的属性以通过那些属性快速查找。当前不支持索引关系属性。这些都是基于lucene开始的,但是我们已经逐渐用我们自己的本机索引解决方案代替了实现。关于这些内容以及任何值得注意的信息和限制的讨论,可以在我们的index configuration documentation中找到。
另一个索引系统是一个较旧的手动系统,称为“显式索引”,尽管以前称为“手动索引”。这也是基于lucene的,但是它们不是自动的-用户可以手动向索引中添加或删除条目,并在数据库中的数据更改时保持它们为最新。这使使用和维护变得麻烦,我们建议尽可能避免使用此系统。
Built-in procedures是使用显式索引创建和查找的方法,因为这些索引永远不会在后台自动使用(与模式索引相对)。 APOC Procedures还提供了各种与显式索引接口的方法。
使用显式索引的主要原因是因为您能够在属性关系上创建索引并在查询索引时快速查找。如果以这种方式配置了索引,还可以跨多个标签和属性进行全文查找。
与所有这些方法分开,应该注意,标签的使用本身就是一种索引,因为它可以快速访问具有给定标签的所有节点。