neo4j 3.4.5
在经历了六个里程碑之后, Neo4j 1.4现已成为GA ,具有一系列新功能,包括新的查询语言,自动索引框架和遍历器的分页机制。 我们与Neo4j的联合创始人Peter Neubauer谈谈了此最新版本中的一些新功能。
JAXenter: Neo4j 1.4现在通常可支持Cypher语言。 Cypher为Neo4j用户添加了什么?
彼得·诺伊鲍尔(Peter Neubauer):它允许对图存储进行表达性和高效的查询,而无需在代码中编写Java Neo4j遍历器。
Cypher被设计为一种人性化的查询语言,适合想要对数据库进行即席查询的开发人员以及(重要的是,我们认为)运维专业人员。 它的构造基于英语散文和简洁的图像,这有助于使其(在某种程度上)不言自明。
Cypher受到许多不同方法的启发,并以用于表达查询的既定实践为基础。 大多数关键字(例如WHERE和ORDER BY)均受SQL启发。 模式匹配借鉴了SPARQL的表达方法。 正则表达式匹配是使用Scala编程语言实现的。
密码是一种声明性语言。 与诸如Java和Scala的命令性语言以及诸如Groovy(Gremlin)或Ruby(JRuby Neo4j绑定)的脚本语言相比,它着重于表达从图形中检索什么而不是如何执行的清晰度。 这引起了关于如何在未向用户公开的实现细节中优化查询的担忧。
JAXenter:新的自动索引框架在现有索引框架的基础上增加了什么?
彼得:使用自动索引,索引可以配置一次,然后侦听数据库中的事务和更改。 这节省了将索引更新显式包括到变异事务中的开销,以及节省了作为域代码的一部分删除和更新索引的开销。
自动索引并不能代替手动控制,因此对于非平凡的场景(例如条件和复杂的索引规则或复杂的索引值),您仍然可以使用完整的原子索引API。
JAXenter:在此发行版中,REST API是如何开发的?
彼得:通常,分页的概念已添加到遍历方法中,并且引入了REST操作的批处理模式,其中所有列出的REST操作都在同一事务中执行。 这缓解了REST作为概念的两个主要缺点-状态性和事务支持。
而且,用于Gremlin和Cypher的新插件现在已成为标准Neo4j Server发行版的一部分,从而大大消除了编写Java插件以实现自定义功能和良好性能的需求。 它们使您可以在服务器上执行脚本代码,并返回节点,关系和路径或字符串之类的基元的常规REST集合的集合。
JAXenter: Neo4j项目的下一步是什么?
彼得:对于下一个版本,我们正在努力将Cypher开发为完整的图形查询语言。 另外,随着Neo4j越来越多地用于大型任务关键型项目,计划进行大量的Neo4j核心优化,以改善高速缓存,高负载性能以及在高负载情况下对JVM Garbage Collector的弹性。 另外,我们希望通过二进制协议添加比REST更好的远程处理。 我们正在寻求有关存储的数据库存储优化
卷,压缩和加密。 此外,基于用户的反馈,复制,故障转移和分发等企业功能正在得到很大的改进。 但最后,我们的路线图是我们强大社区的功能与客户需求之间的平衡。 我们正在以一种有时间限制的方式工作,因此很难确切地说出1.5版将具有哪些功能。
更进一步,我们真的很希望开始图分布以及与其他NoSQL和Neo4j 2.0的关系集成。
翻译自: https://jaxenter.com/whats-new-in-neo4j-1-4-103594.html
neo4j 3.4.5