N
e
o
4
j
C
y
p
h
e
r
�/p>
�/p>
�/p>
言
�/p>
è§?/p>
Cypher
介绍
“Cypherâ€?/p>
是一个描述性的图形查询语言ï¼?/p>
允许不必编写图形结构的遍历代码对图形存储有表现力和效çŽ?/p>
的查询ã€?/p>
Cypher
还在继续发展和成熟,这也就意味着有可能会出现语法的变化。同时也意味着作为ç»?/p>
件没有经历严格的性能测试ã€?/p>
Cypher
设计的目的是一个人类查询语言,适合于开发者和在数据库上做点对点模式(
ad-hoc
)查询的
专业操作人员(我认为这个很重要)。它的构念是基于英语单词和灵巧的图解ã€?/p>
Cyper
通过一系列不同的方法和建立于确定的实践为表达查询而激发的。许多关键字å¦?/p>
like
å’?/p>
orderby
是受
SQL
的启发。模式匹配的表达式来自于
SPARQL
。正则表达式匹配实现实用
Scalaprogramminglan
guage
语言ã€?/p>
Cypher
是一个申明式的语言。对比命令式语言å¦?/p>
Java
和脚本语言å¦?/p>
Gremlin
å’?/p>
JRuby
,它的焦点在äº?/p>
从图中如何找回(
whattoretrieve
),而不是怎么去做。这使得在不对用户公布的实现细节里关心的是æ€?/p>
么优化查询ã€?/p>
这个查询语言包含以下几个明显的部分:
â–?/p>
START
:在图中的开始点,通过元素çš?/p>
ID
或所以查找获得ã€?/p>
â–?/p>
MATCH
:图形的匹配模式,束缚于开始点ã€?/p>
â–?/p>
WHERE
:过滤条件ã€?/p>
â–?/p>
RETURN
:返回所需要的ã€?/p>
在下例中看三个关键字
示例图片如下ï¼?/p>
如:这个有个查询,通过遍历图找到索引里一个叫
John
的朋友的朋友(不是他的直接朋友),返å›?/p>
Jo
hn
和找到的朋友的朋友ã€?/p>