![72fa30c413e5e0647a8fed3931399912.png](https://i-blog.csdnimg.cn/blog_migrate/8d11e0fb3c54acf0a881e80e3516b996.jpeg)
1、Cypher图数据库查询语言
作为数据库软件,最直接的方法去访问数据就是使用Neo4j的图查询语言Cypher。Cypher可以在Neo4j Browser、通过浏览器中执行,也可以在cypher-shell中、通过命令行执行,或者作为过程参数在Neo4j应用客户端执行。
2、Neo4j应用客户端
客户端应用可以以类似JDBC或ODBC的方式从远程访问数据库、提交Cypher查询,并接收返回结果。Neo4j官方提供的客户端驱动支持以下5种语言:
- Java
- JavaScript
- .Net
- Python
- Go
上述所有语言的驱动可以从这里访问:https://neo4j.com/download-center/#drivers 。
Neo4j的社区用户还开发了其他语言驱动,包括C/C++、R等;以及应用开发框架来简化实现、封装操作,最常用的当属Spring Data Neo4j/SDN(数据集成)、以及Object Graph Mapping/OGM(对象封装)。
3、Neo4j服务器端扩展
Neo4j是纯Java应用,支持在服务器端部署的JAR包来扩展数据库功能。JAR包中的过程和函数可以在Cypher语句中调用,例如:
CALL mypackage.procedure(param1, param2,...) YIELD value
RETURN value
最有名的服务器端扩展是:
- APOC:提供丰富的数据库操作、复杂路径遍历等过程
- ALGO:提供5类常用图算法:
- 最短路径搜索
- 中心性
- 社区检测
- 相似度
- 链接预测
服务器端扩展可以使用Neo4j核心数据库提供的遍历框架(Traversal Framework),以及核心API(Core API)来实现需要的功能。