一、Neo4j的特点
1、SQL就像简单的查询语言Neo4j CQL
2、它遵循属性图数据模型
3、它通过使用Apache Lucence支持索引
4、它支持UNIQUE约束
5、它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
6、它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
7、它采用原生图形库与本地GPE(图形处理引擎)
8、它支持查询的数据导出到JSON和XLS格式
9、它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
10、它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
11、它支持两种Java API:Cypher API和Native Java API来开发Java应用程序
引入知识点:Apache Lucence
Lucene 是什么?
Lucene是一个基于Java的全文索引工具包。
Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
Lucene是简单而功能强大的基于Java的搜索库。它可以用于任何应用程序来搜索功能。 Lucene是开源项目。它是可扩展的,高性能的库用于索引和搜索几乎任何类型的文本。Lucene库提供了所需的任何搜索应用程序的核心业务。索引和搜索。
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。
二、Neo4j的优点
1、数据底层存储专门针对图数据的特点进行优化,在关系数据的处理上具备远高于其他数据库的性能;
2、专门为关系数据设计的查询语言,对于关系数据的操作更加的方便。
3、没有表结构这个概念,相较SQL在使用上更加灵活。
4、自动为数据建立合适的索引(根据数据的标签),免去管理索引的麻烦。
5、支持高可用性主从集群部署。
6、具备图形化平台等配套工具,帮助开发者快速构建出完整的关系数据平台。
三、Neo4j的缺点
1、neo4j来处理结点本身的属性就没有什么优势,
2、单机版,分布式不好做;
四、Neo4j的使用场景
1、社交网络:根据用户与其他用户的关系为用户推荐新的朋友。例如,在QQ中给你推荐朋友的朋友 。
2、智能推荐引擎:通过分析用户有哪些朋友、用户朋友喜好的产品、用户的浏览记录等关系信息为用户推荐商品。
3、知识图谱:根据知识点之间的关系建立知识图,帮助用户搜索到关联的知识。
4、网络、数据中心管理:网络、数据中心这些基础设施自身就是一个包含复杂关系的网络,利用Neo4j可以方便的建立设备之间的关系,以便于对整个系统的管理;