neo4j知识图谱
neo4j 不使用schema,所以从理论上来说 neo4j 可以存储任何形式的数据。但由于neo4j 是通过键值对(Key-Value) 的双向列表来保存节点和关系的属性值,所以neo4j仅适用于存储实体关系和实体简单的属性。在实际应用中一个实体通常会包含众多的属性,如果将这些属性全部存储到 neo4j 中,neo4j 的查询将变得异常的慢, 而在实际的应用场景下,采用以下方式 来抵御高并发
1 高可用架构neo4j HA
2 增加缓存(如:redis, leveldb等)
3 索引查询优化,Neo4j 1.4以后的版本引入了自动索引(automatic index),可以在config/neo4j.properties中配置自动创建索引,也可以通过语句CREATE INDEX ON :Label(PropertyName)手动创建索引,从而提高查询的效率。
4 Neo4j和KV(Key Value)数据库联合使用,将 neo4j 数据库和KV 数据库(如:MongoDB)进行联合使用,比如在 neo4j 节点的属性中存储MongoDB 中的 objectId。