我将在我的应用程序Neo4j Manual Index on Relationship Properties中尝试解决我遇到的性能问题Neo4j Cypher 查询性能优化
我有几个问题在 Neo4j 官方文档中并不清楚:
MATCH (:Flight)-[r:DESTINATION]->(:Airport) CALL apoc.index.addRelationship(r,['taxi_time']) RETURN count(*)
该语句将创建与关系类型同名的关系索引,在本例中为 DESTINATION,并通过其属性将关系添加到索引中。
我什么时候需要创建这个关系索引?它应该执行一次(假设在应用程序启动时)还是每次在节点
-[r:DESTINATION]->
之间添加新关系Flight
时都需要调用此 APOC 函数Airport
?在现有
-[r:DESTINATION]->
关系更新的情况下,如何在相应的手动索引中更新此信息?如果删除一些
Flight
或Airport
节点 - 我是否需要手动查找并-[r:DESTINATION]->
从手动索引中删除适当的关系,或者它会由 APOC 和 Neo4j 自动完成?对于 Spring Data Neo4j 项目 - 如何正确执行包含 APOC 函数的查询?例如,我想调用
apoc.index.addRelationship
以便为关系属性创建手动索引。我可以org.neo4j.ogm.session.Session.query
用于此目的吗?手动索引使用什么一致性模型 - 他们在索引和原始数据之间使用最终一致性还是强一致性模型?