我希望听到你们中任何一个已经构建和实现了一个体面的 Neo4j 应用程序(10 百万个节点/rels)的人的意见 - 以及你们的建议特别是 wrt 建模和各种 API(vanilla java/groovy Neo4j vs Spring-Data -Neo4j 与 Grails GORM/Neo4j)。
如果添加额外的 OGM(对象图映射)层和相关的抽象是否真的值得,我很感兴趣?
有没有人的经验是最好坚持使用节点+属性、关系+属性、遍历和(例如)Cypher 的“普通”图形建模来建模和存储他们的数据?
我担心的是,将特定的 OGM 抽象“强制”到图形数据库上会影响未来适应/更改域模型的灵活性和/或查询数据的灵活性。
我们是一家 Grails 商店,我已经尝试过 GORM/Neo4J 以及 spring-data-neo4j。
数据集的主要目的是对大量人、他们的别名、他们的同事以及各种犯罪活动和历史之间的关系进行建模和查询。将有 50 多个主要领域类。模型必须具有灵活性(需要在项目的早期阶段迅速发展)以及查询的速度和灵活性。
我必须承认,当我可以使用(例如)POJO 或 POGO、一点 Groovy 魔法和一些简单的手动域对象 <-> 节点/关系映射代码时,我正在努力寻找使用 OGM 层的令人信服的理由. 据我所知,我认为只要处理节点、遍历和 Cypher(又名 KISS),我就会很高兴。但我很乐意听到其他人的经验和建议。
感谢您的时间和想法,
TP