根据本手册https://github.com/jadell/neo4jphp/wiki/Indexes,我们应该担心自己向索引添加和删除节点。
好的,我在创建节点后将节点添加到索引中。但是当我更改某些节点的属性时,我是否也应该更新索引?
根据本手册https://github.com/jadell/neo4jphp/wiki/Indexes,我们应该担心自己向索引添加和删除节点。
好的,我在创建节点后将节点添加到索引中。但是当我更改某些节点的属性时,我是否也应该更新索引?
如果您使用的是遗留索引(由@jakewins 描述),除非您为被索引的字段启用了自动索引,是的,您必须在属性值更改时手动删除并重新添加节点。
Neo4j 有两个索引系统:传统索引和索引。
这是 Neo4j 附带的独立索引服务,它为您提供的免费很少,它不会跟上您对图表所做的更改,除了懒惰地删除您在图表中删除的项目.
如果您想要旧索引中的某些内容,则必须手动将其放入其中,如果您希望它反映图表中的更改,则必须手动更新索引。
除了向后兼容之外,保留这些索引的唯一原因是它们支持复杂的索引,例如地理空间索引和富全文索引功能。新索引尚不支持这些。
在此处阅读有关遗留索引的更多信息:http: //docs.neo4j.org/chunked/stable/indexing.html
这些是在 2.0.0 中添加的,并且与索引在关系数据库中的工作方式相同 - 它们是您可以引入的优化,并且在我们的示例中,它们会自动与“主要”数据保持同步,并随着图形。
索引是在标签和属性键的组合上定义的,随后对该标签/属性键组合的查找将(如果查询规划器确定这是最有效的做法)使用该索引。
在此处阅读有关索引的更多信息:http: //docs.neo4j.org/chunked/stable/graphdb-neo4j-schema.html