1

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

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

4

2 回答 2

0

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

于 2014-04-04T17:15:32.903 回答
0

Neo4j 有两个索引系统:传统索引和索引。

旧版索引

这是 Neo4j 附带的独立索引服务,它为您提供的免费很少,它不会跟上您对图表所做的更改,除了懒惰地删除您在图表中删除的项目.

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

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

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

索引

这些是在 2.0.0 中添加的,并且与索引在关系数据库中的工作方式相同 - 它们是您可以引入的优化,并且在我们的示例中,它们会自动与“主要”数据保持同步,并随着图形。

索引是在标签和属性键的组合上定义的,随后对该标签/属性键组合的查找将(如果查询规划器确定这是最有效的做法)使用该索引。

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

于 2014-04-04T15:41:49.870 回答