我们应该在neo4jphp中更新节点后更新索引吗?

时间:2014-04-04 11:15:40

标签: neo4j neo4jphp

根据本手册https://github.com/jadell/neo4jphp/wiki/Indexes,我们应该担心自己在索引中添加和删除节点。

好的,我在创建索引后将其添加到索引中。但是,当我更改某些节点的属性时,是否还要更新索引?

2 个答案:

答案 0 :(得分:0)

Neo4j有两个索引系统:Legacy Indexes和Indexes。

旧版索引

这是Neo4j附带的独立索引服务,它免费为您提供很少的内容,它无法及时更新您对图表所做的更改,除了lazilly删除您所关注的项目。已删除图表。

如果您想要遗留索引中的某些内容,则必须手动将其放在那里,如果您希望它反映图表中的更改,则必须手动更新索引。

除了向后兼容性之外,这些索引保留的唯一原因是它们支持复杂的索引,如地理空间索引和丰富的全文索引功能。新索引尚不支持这些。

在此处详细了解旧版索引:http://docs.neo4j.org/chunked/stable/indexing.html

索引

这些是在2.0.0中添加的,其工作方式与关系数据库中的索引相同 - 它们是您可以引入的优化,并且它们会自动与" primary"同步。在我们的例子中,数据随着图表的变化而变化。

索引是在Label和Property Key的组合上定义的,对该Label / Property组合键的后续查找将(如果查询计划程序确定这是最有效的事情)使用该索引。

在此处阅读有关索引的更多信息:http://docs.neo4j.org/chunked/stable/graphdb-neo4j-schema.html

答案 1 :(得分:0)

如果您正在使用旧索引(由@jakewins描述),除非您为要编制索引的字段启用了自动索引,是的,您必须在属性值更改时手动删除并重新添加节点。