复述,图形的命令<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#redis-graph-commands" title="¶">¶一个>
graph.query.<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphquery" title="¶">¶一个>
对指定的图执行给定的查询。
参数:图形名称,查询
返回:<一个href="//www.szfbf.com/lp/lp/result_structure/">结果集一个>
graph.query.us_government<年代p一个nclass="s2">“比赛(P:总统) - [:出生] - >(:州{名:'夏威夷'})返回P”年代p一个n>
图。RO_QUERY<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphro_query" title="¶">¶一个>
对指定的图执行给定的只读查询。
参数:图形名称,查询
返回:<一个href="//www.szfbf.com/lp/lp/result_structure/">结果集一个>如果给出了写查询,则只需读取查询或错误。
图。RO_QUERY us_government<年代p一个nclass="s2">“比赛(P:总统) - [:出生] - >(:州{名:'夏威夷'})返回P”年代p一个n>
查询语言<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#query-language" title="¶">¶一个>
语法是基于<一个href="http://www.opencypher.org/">暗号一个>,并且仅支持当前支持的语言的子集。
查询结构<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#query-structure" title="¶">¶一个>
- 匹配
- 可选的匹配
- 在哪里
- 返回
- 订购
- 跳过
- 限制
- 创建
- 合并
- 删除
- 集
- 与
- 联盟
匹配<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#match" title="¶">¶一个>
匹配描述查询实体之间的关系,使用ASCII艺术来表示要匹配的模式。
节点由括号表示()
,关系用括号表示[]
.
每个图形实体节点/关系都可以包含别名和标签/关系类型,但如果需要,两者都可以留空。
实体结构:别名:标签{过滤器}
.
别名、标签/关系类型和过滤器都是可选的。
例子:
(年代p一个n>答:演员<年代p一个nclass="o">)年代p一个n>-<年代p一个nclass="o">[年代p一个n>:行为<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>米:电影<年代p一个nclass="o">{年代p一个n>标题:<年代p一个nclass="s2">“直接离开康普顿”年代p一个n><年代p一个nclass="o">})年代p一个n>
一个
是源节点的别名,我们将能够在查询中的不同位置引用它。
演员
是标记该节点的标签。
行为
是关系类型。
米
目标节点的别名。
电影
目标节点为“类型”电影。
{标题:“直接离开康普顿”}
要求节点的标题属性等于“冲出康普顿”。
在本例中,我们感兴趣的是与之有“act”关系的参与者实体<年代trong>的年代trong>实体代表“冲出康普顿”电影。
可以通过组合一个多跳查询来描述更广泛的关系,例如:
(年代p一个n>我<年代p一个nclass="o">{年代p一个n>姓名:<年代p一个nclass="s1">“祥”年代p一个n><年代p一个nclass="o">})年代p一个n>-<年代p一个nclass="o">[年代p一个n>:FRIENDS_WITH<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">()年代p一个n>-<年代p一个nclass="o">[年代p一个n>:FRIENDS_WITH<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>摘要<年代p一个nclass="o">)年代p一个n>
在这里,我们有兴趣了解我的朋友的朋友是谁。
例如,节点可以包含多个关系,例如:
(年代p一个n>我<年代p一个nclass="o">{年代p一个n>姓名:<年代p一个nclass="s1">“祥”年代p一个n><年代p一个nclass="o">})年代p一个n>-<年代p一个nclass="o">[年代p一个n>:参观<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>c:国家<年代p一个nclass="o">)年代p一个n><-<年代p一个nclass="o">[年代p一个n>:参观<年代p一个nclass="o">]年代p一个n>-<年代p一个nclass="o">(年代p一个n>朋友<年代p一个nclass="o">)年代p一个n><-<年代p一个nclass="o">[年代p一个n>:FRIENDS_WITH<年代p一个nclass="o">]年代p一个n>-<年代p一个nclass="o">(年代p一个n>我<年代p一个nclass="o">)年代p一个n>
在这里,我们感兴趣的是,我的哪些朋友至少去过一个我去过的国家。
可变长度的关系<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#variable-length-relationships" title="¶">¶一个>
可以使用以下语法找到具有可变数量关系的节点→节点跳距的节点:
-<年代p一个nclass="o">[年代p一个n>:*minhops... maxHops类型<年代p一个nclass="o">]年代p一个n>->
类型
,minhops.
和maxHops
都是可选的,默认为类型不可知,分别为1和无穷大。
如果没有界限,这些点可以省略。当只设置一个边界时,点也可以省略,这意味着一个固定长度的模式。
例子:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">MATCH (charlie:Actor {name: ' charlie Sheen'})-[:PLAYED_WITH*1..3]->(同事:Actor)年代p一个n><年代p一个nclass="s2">回报的同事”年代p一个n>
返回所有与“查理·辛”相关的演员1到3跳。
双向路径遍历<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#bidirectional-path-traversal" title="¶">¶一个>
如果一个关系模式没有指定方向,无论哪个节点是源,哪个节点是目的,它都将匹配:
-<年代p一个nclass="o">[年代p一个n>:类型<年代p一个nclass="o">]年代p一个n>-
例子:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“比赛(person_a:人)-(知道):(person_b:人)年代p一个n><年代p一个nclass="s2">返回person_a person_b”年代p一个n>
返回所有由a连接的人对知道
关系。请注意,每对将返回两次,一次用每个节点返回一次person_a
田野里有一次person_b
场地。
句法糖(person_a)< - [:知道] - >(person_b)
将返回相同的结果。
如果应考虑所有关系,可以省略括号的边缘描述:(person_a) - (person_b)
.
指定路径<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#named-paths" title="¶">¶一个>
命名路径变量是通过在MATCH子句中使用语法将路径分配给单个别名来创建的:MATCH named_path = (path)-[to]->(capture)
命名路径包括路径中的所有实体,无论它们是否被显式别名。命名路径可以使用<一个href="//www.szfbf.com/lp/redisgraph-commands/#path-functions">指定的内置函数一个>如果使用特定于语言的客户端,则直接返回。
例子:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配p =(查理:演员{name:'charlie sheen'}) - [:played_with * 1..3] - >(:演员)年代p一个n><年代p一个nclass="s2">返回节点(p)作为参与者"年代p一个n>
此查询将生成与命名路径中包含的模式匹配的所有路径p
.所有这些路径都有相同的起点,即代表Charlie Sheen的演员节点,但在长度和内容上有所不同。通过变长遍历和(演员):
端点未明确别名,沿路径遍历的所有节点和边缘都将包括在内p
.在本例中,我们只对每个路径的节点感兴趣,我们将使用内置函数收集这些节点节点()
.返回值将依次包含0到2个中间节点之间的Charlie Sheen和未别名端点。
可选的匹配<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#optional-match" title="¶">¶一个>
OPTIONAL MATCH子句是一种MATCH变体,它为没有成功匹配的元素生成空值,而不是为MATCH子句中的模式生成全或全无逻辑。
可以将其视为与SQL中的LEFT/RIGHT JOIN相同的角色,因为必须解析MATCH实体,但在OPTIONAL MATCH中引入的节点和边将在无法找到时返回为空。
可选MATCH子句接受与标准MATCH子句相同的模式,并且可以类似地由WHERE子句进行修改。
多个MATCH和OPTIONAL MATCH子句可以链接在一起,但是强制性MATCH不能跟在可选MATCH后面。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(p:person)可选匹配(p) - [w:works_at] - >(c:公司)年代p一个n><年代p一个nclass="s2">WHERE w.start_date > 2016年代p一个n><年代p一个nclass="s2">返回p,w,c“年代p一个n>
全部人
节点返回,以及任何WORKS_AT
关系和公司
可以解决和满足的节点start_date
约束。为每一个人
如果没有解析可选模式,则person将作为正常返回,而不匹配的元素将作为null返回。
Cypeher在其处理空值的处理中宽容,因此属性访问和空值上的函数调用等操作将返回NULL值,而不是发出错误。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(p:person)可选匹配(p) - [w:works_at] - >(c:公司)年代p一个n><年代p一个nclass="s2">返回P,W.Department,ID(C)为ID“年代p一个n>
在这种情况下,w.department
和ID
如果OPTIONAL MATCH成功,将返回,否则将为空。
像SET、CREATE、MERGE和DELETE这样的子句将忽略空输入,并对实际输入执行预期的更新。一个例外是,尝试创建一个与空端点的关系将导致一个错误:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(p:person)可选匹配(p) - [w:works_at] - >(c:公司)年代p一个n><年代p一个nclass="s2">创建(c) - [: NEW_RELATION] - > (NEW_NODE):“年代p一个n>
如果c
对于任何记录为空,此查询将发出错误。在这种情况下,即使某些值,也不会提交对图形的更改c
被解决。
在哪里<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#where" title="¶">¶一个>
这个子句不是强制性的,但是如果您想过滤结果,可以在这里指定谓词。
支持的操作:
=
<>
<
<=
>
>=
包含
以。。结束
在
开始于
谓词可以使用AND / OR / NOT组合。
请确保将谓词包装在括号中以控制优先级。
例子:
WHERE (actor.name = "john doe" OR movie。等级> 8.8)和电影。票< = 250)
actor.age> =董事.age和actor.age> 32
也可以在节点中使用花括号指定相等谓词,如下所示:
(:总统{姓名:“Jed Bartlett”}) - [:Won] - >(:州)
在这里,我们要求总统节点的名称具有“Jed Bartlett”的值。
内联谓词和WHERE子句中指定的谓词之间没有区别。
也可以对图形模式进行过滤。下面的查询会返回所有的总统和他们赢得的州,结果是一样的:
匹配<年代p一个nclass="o">(年代p一个n>p:总统<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="o">(年代p一个n>年代:状态<年代p一个nclass="o">)年代p一个n>在哪里<年代p一个nclass="o">(年代p一个n>p<年代p一个nclass="o">)年代p一个n>-<年代p一个nclass="o">[年代p一个n>:赢了<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>年代<年代p一个nclass="o">)年代p一个n>返回p,s
和
匹配<年代p一个nclass="o">(年代p一个n>p:总统<年代p一个nclass="o">)年代p一个n>-<年代p一个nclass="o">[年代p一个n>:赢了<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>年代:状态<年代p一个nclass="o">)年代p一个n>返回p,s
模式谓词也可以被否定并与逻辑操作符and、OR和NOT组合在一起。下面的查询返回他们担任州长的州中所有没有获胜的总统:
匹配<年代p一个nclass="o">(年代p一个n>p:总统<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="o">(年代p一个n>年代:状态<年代p一个nclass="o">)年代p一个n>在那里不<年代p一个nclass="o">(年代p一个n>p<年代p一个nclass="o">)年代p一个n>-<年代p一个nclass="o">[年代p一个n>:赢了<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>年代<年代p一个nclass="o">)年代p一个n>和<年代p一个nclass="o">(年代p一个n>p<年代p一个nclass="o">)年代p一个n>-><年代p一个nclass="o">[年代p一个n>:州长<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>年代<年代p一个nclass="o">)年代p一个n>返回p,s
返回<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#return" title="¶">¶一个>
Return的简单形式定义了返回的结果集将包含哪些属性。
它的结构是一个列表alias.property
之间用逗号分隔。
为了方便起见,只有当您对实体所拥有的每个属性都感兴趣,并且不想分别指定每个属性时,才可以指定别名。例如:
返回的电影。标题、演员
使用Distinct关键字删除结果集中的重复:
返回不同的friend_of_friend.name
在上面的例子中,假设我们有两个朋友,Joe和Miesha,他们都认识Dominick。
截然不同将使Dominick仅在最终结果集中出现一次。
返回也可用于聚合数据,类似于SQL中的组。
一旦一个聚合函数被添加到返回列表中,所有其他的“none”聚合值都被认为是组键,例如:
返回的电影。标题,马克斯<年代p一个nclass="o">(年代p一个n>一个ctor.age<年代p一个nclass="o">)年代p一个n>,分钟<年代p一个nclass="o">(年代p一个n>一个ctor.age<年代p一个nclass="o">)年代p一个n>
在这里,我们通过电影标题和每部电影进行数据,我们发现其最年轻,最古老的演员年龄。
聚合<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#aggregations" title="¶">¶一个>
支持的聚合函数包括:
Avg.
搜集
数
马克斯
最小值
百分比
百分之菌
方差
总和
订购<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#order-by" title="¶">¶一个>
顺序指定输出被排序以及如何。
您可以通过在order by子句中声明每个变量来按多个属性排序。
每个属性都可以指定其排序顺序ASC
/提升
或DESC
/下行
.如果未指定订单,则默认为升序。
结果将按列出的第一个变量排序。
对于相等的值,它将转到ORDER BY子句中的下一个属性,以此类推。
按< alias.property<年代p一个nclass="o">[年代p一个n>一种SC / DESC<年代p一个nclass="o">]年代p一个n>列表>
下面是根据身高来分类的朋友。对于相同的高度,重量被用来打破束缚。
订单的朋友。高度,朋友。体重DESC
跳过<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#skip" title="¶">¶一个>
可选的skip子句允许从结果集中省略指定数量的记录。
SKIP <要跳过>的记录数
当处理批量处理时,这非常有用。一个查询,它将使用标签检查第二个100元元节点批次人
例如,将是:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (p:Person) RETURN p ORDER BY p.name SKIP 100 LIMIT 100"年代p一个n>
限制<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#limit" title="¶">¶一个>
尽管不是强制性的,但您可以使用limit子句来限制查询返回的记录数量:
限制
如果未指定,则查询返回的记录数量没有限制。
创建<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#create" title="¶">¶一个>
CREATE用于引入新的节点和关系。
创建最简单的例子是创建单个节点:
创建<年代p一个nclass="o">(年代p一个n>n<年代p一个nclass="o">)年代p一个n>
可以用逗号分隔多个实体。
创建<年代p一个nclass="o">(年代p一个n>n<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="o">(年代p一个n>米<年代p一个nclass="o">)年代p一个n>
创建<年代p一个nclass="o">(年代p一个n>:人<年代p一个nclass="o">{年代p一个n>姓名:<年代p一个nclass="s1">'kurt'年代p一个n>年龄:<年代p一个nclass="m">27年代p一个n><年代p一个nclass="o">})年代p一个n>
要在节点之间添加关系,请在以下示例中找到现有源节点。找到后,我们创建了一个新的关系和目标节点。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“比赛(人):年代p一个n><年代p一个nclass="s2">a.name = 'Kurt'年代p一个n><年代p一个nclass="s2">创建(a) - [:会员] - >(:乐队{name:'nirvana'})“年代p一个n>
这里源节点是有界节点,而目标节点是无界节点。
因此,将创建一个表示乐队Nirvana的新节点,并创建一个将Kurt连接到乐队的新关系。
最后,我们创建一个完整的模式。
模式中所有没有绑定的实体都将被创建。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“创建(吉姆:人{name:'jim',年龄:29}) - [:friends] - >(pam:person {name:'pam',年龄:27}) - [:works] - >(:雇主{名称:'dunder mifflin'})“年代p一个n>
这个查询将创建三个节点和两个关系。
删除<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#delete" title="¶">¶一个>
DELETE用于删除节点和关系。
注意,删除一个节点也会删除它的所有传入和传出关系。
删除一个节点及其所有关系:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(p:person {name:'jim'})删除p”年代p一个n>
删除关系:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(:人{名称:“吉姆”})- (r:朋友)- >()删除r”年代p一个n>
该查询将删除所有朋友
从名为“Jim”的节点发出的关系。
集<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#set" title="¶">¶一个>
SET用于创建或更新节点和关系上的属性。
若要在节点上设置属性,请使用集
.
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (n {name: 'Jim'}) SET n.name = 'Bob'"年代p一个n>
如果您想一次性设置多个属性,只需用逗号分隔它们,使用单个set子句设置多个属性。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (n {name: 'Jim', age:32})年代p一个n><年代p一个nclass="s2">SET n.年龄= 33,n.姓名= 'Bob'"年代p一个n>
同样可以通过将图形实体变量设置为地图来实现:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (n {name: 'Jim', age:32})年代p一个n><年代p一个nclass="s2">设置n = {年龄:33,名称:'Bob'}“年代p一个n>
使用=
以这种方式替换实体之前的所有属性,而+=
将只设置它显式提到的属性。
要删除节点的属性,只需将属性值设置为NULL。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (n {name: 'Jim'}) SET n.name = NULL"年代p一个n>
合并<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#merge" title="¶">¶一个>
merge子句可确保图表中存在路径(路径已存在,或者需要创建)。
合并要么匹配现有节点并绑定它们,要么创建新数据并绑定它们。
它类似于MATCH和CREATE的组合,还允许您指定匹配或创建数据时会发生什么。
例如,可以指定图形必须包含具有特定名称的用户的节点。
如果没有名称具有正确的节点,则将创建一个新节点并将其名称属性集。
合并路径中由前面的子句引入的任何别名只能被匹配;MERGE不会创建它们。
当MERGE路径不依赖于前面的子句时,将始终匹配或创建整个路径。
如果MERGE引入了所有路径元素,则匹配失败将导致创建所有元素,即使部分匹配成功。
合并路径可以在匹配集中,并在Create Set Digwary上对有条件设置属性的创建指令,具体取决于匹配是否已成功。
<年代trong>合并节点年代trong>
使用标签合并单个节点:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“合并(罗伯特:评论家)”年代p一个n>
要合并带有属性的单个节点:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“合并(查理{名字:‘查理·辛’,年龄:10岁)”年代p一个n>
要合并一个节点,请指定标签和属性:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“合并(michael:Person {name: ' michael Douglas'})”年代p一个n>
合并路径年代trong>
因为合并匹配或创建完整路径,因此很容易意外地创建重复节点。
例如,如果我们在示例图上运行以下查询:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“merge(查理{name:'charlie sheen'}) - [r:conted_in] - >(wallstreet:movie {name:'wall Street'})”年代p一个n>
即使具有名称“查理光泽”的节点已经存在,完整模式也不匹配,因此1个关系和2个节点 - 包括重复的“查理光泽”节点 - 将被创建。
我们应该使用多个MERGE子句来合并一个关系,并且只创建不存在的端点:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“合并(查理{名字:查理辛})”年代p一个n><年代p一个nclass="s2">Merge(Wallstreet:电影{name:'wall Street'})年代p一个n><年代p一个nclass="s2">合并(查理) - [R:Acted_in] - >(Wallstreet)“年代p一个n>
如果在模式元素不存在的情况下不想创建任何内容,则可以组合MATCH和MERGE子句。下面的查询只在两个端点已经存在的情况下合并一个关系:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(查理{name:'查理sheen'})年代p一个n><年代p一个nclass="s2">匹配(Wallstreet:电影{name:'wall Street'})年代p一个n><年代p一个nclass="s2">合并(查理) - [R:Acted_in] - >(Wallstreet)“年代p一个n>
在匹配和创建指令上年代trong>
使用ON MATCH和ON CREATE, MERGE可以根据模式是匹配还是创建而不同地设置属性。
在这个查询中,我们将基于属性列表合并路径,并在创建新实体时有条件地设置一个属性:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“UNWIND[‘查理·辛’、‘迈克尔·道格拉斯’、‘塔玛拉·突尼斯’]作为演员年代p一个n><年代p一个nclass="s2">MATCH(电影名称:《华尔街》)年代p一个n><年代p一个nclass="s2">MERGE (person {name: actor_name})-[:ACTED_IN]->(movie)年代p一个n><年代p一个nclass="s2">ON CREATE SET person。first_role = movie.name”年代p一个n>
与<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#with" title="¶">¶一个>
WITH子句允许独立执行部分查询,并对其结果进行唯一处理。
这允许更灵活的查询组合以及在单个查询中不可能实现的数据操作。
例如,如果我们想在我们的图表中找到所有孩子,谁高于所有人的平均年龄:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (p:Person) WITH AVG(p.age) AS average_age MATCH (:Person)-[:PARENT_OF]->(child:Person) WHERE child. "年龄> average_age返回child年代p一个n>
这也允许我们使用像这样的修饰符清楚的
,跳过
,限制
,命令
否则需要返回
条款。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“匹配(U:User)用U作为不值为U.LastVisit Limit 3 Set NonRecent.should_contact = true”年代p一个n>
放松<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#unwind" title="¶">¶一个>
展示子句将给定列表分解为一系列记录;每个列表中包含一个元素。
记录的顺序保留原始列表订单。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“创建(p{数组:[1,2,3]})”年代p一个n>
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (p) UNWIND p.array AS y RETURN y"年代p一个n>
联盟<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#union" title="¶">¶一个>
UNION子句用于组合多个查询的结果。
联盟将两个或多个查询的结果合并为一个结果集,该结果集包括属于联合中所有查询的所有行。
列的数量和名称必须在使用UNION组合的所有查询中相同。
要保留所有结果行,请使用UNION all。
仅使用UNION将组合并删除结果集中的重复项。
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (n:Actor)返回n.name作为名称年代p一个n><年代p一个nclass="s2">联盟全部年代p一个n><年代p一个nclass="s2">MATCH (n:Movie)返回n.title AS name"年代p一个n>
功能<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#functions" title="¶">¶一个>
本节包含来自Cypher查询语言的所有受支持函数的信息。
谓词功能<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#predicate-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
存在() | 如果指定的属性存在于节点或关系中,则返回true。 |
任何()一个> | 如果内部WHERE谓词对输入数组中的任何元素都为真,则返回真。 |
所有()一个> | 如果内部WHERE谓词对输入数组中的所有元素都为真,则返回真。 |
没有()一个> | 如果内部WHERE谓词对输入数组中的所有元素都为false,则返回true。 |
单身的()一个> | 如果输入数组中只有一个元素的内部WHERE谓词为真,则返回真。 |
标量函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#scalar-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
endNode () | 返回关系的目标节点。 |
id () | 返回关系或节点的内部ID(这不是不可变的。) |
标签() | 返回节点标签的字符串表示形式。 |
startNode () | 返回关系的源节点。 |
时间戳() | 返回自epoch以来的毫秒数。 |
类型() | 返回关系类型的字符串表示。 |
列表理解 | 看文档一个> |
聚合函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#aggregating-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
avg () | 返回一组数值的平均值 |
收集() | 返回包含从给定表达式求值的所有元素的列表 |
count () | 返回值数或行数 |
max () | 返回一组值中的最大值 |
min () | 返回一组值中的最小值 |
和() | 返回一组数字值的总和 |
百分之下() | 返回组上给定值的百分位数,百分位数为0.0到1.0 |
percentileCont () | 返回组上给定值的百分位数,百分位数为0.0到1.0 |
方差() | 返回给定值在组上的标准偏差 |
列表功能<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#list-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
头() | 返回列表的第一个成员 |
range () | 在[开始,结束]范围内创建一个新的整数列表。如果给出了一个间隔,则两个连续列表成员之间的间隔将是此间隔。 |
尺寸() | 返回列表大小 |
尾() | 返回列表的子列表,该列表包含除第一个值外的所有值 |
数学函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#mathematical-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
abs () | 返回一个数字的绝对值 |
装天花板() | 返回大于或等于一个数字并等于一个数学整数的最小浮点数 |
地板() | 返回小于或等于数字并等于数学整数的最大浮点数 |
rand () | 返回一个范围从0到1的随机浮点数;例如[0,1] |
圆形的() | 返回一个数值四舍五入到最接近的整数 |
(标志) | 返回一个数字的signum:如果这个数字是0,则返回0,任何负数返回-1,任何正数返回1 |
sqrt () | 返回一个数的平方根 |
战俘() | 返回基础提升到指数的权力,基础^指数 |
tointeger() | 将浮点数或字符串值转换为整数值。 |
字符串函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#string-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
剩下() | 返回一个字符串,该字符串包含原始字符串中最左边的指定数量的字符 |
LTRIM() | 返回删除前导空格的原始字符串 |
反向() | 返回一个字符串,其中原始字符串中的所有字符的顺序颠倒 |
正确的() | 返回一个字符串,该字符串包含原始字符串中最右边的指定数量的字符 |
空白() | 返回删除尾随空格的原始字符串 |
substring () | 返回原始字符串的子字符串,以基于0的索引开始和长度开始 |
低() | 返回小写的原始字符串 |
toString () | 返回值的字符串表示形式 |
Tojson() | 返回一个<一个href="//www.szfbf.com/lp/redisgraph-commands/#json-format">JSON表示一个>的一个值 |
Toupper() | 以大写返回原始字符串 |
削减() | 返回删除前导和尾随空格的原始字符串 |
尺寸() | 返回字符串长度 |
点函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#point-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
点()一个> | 返回表示给定LAT / LON坐标的点类型 |
距离() | 返回两个给定点之间的距离,单位为米 |
节点的功能<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#node-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
入度() | 返回节点的传入边的数量。 |
出度() | 返回节点的输出边数。 |
路径功能<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#path-functions" title="¶">¶一个>
功能 | 描述 |
---|---|
节点() | 返回给定路径的新节点列表。 |
关系() | 返回给定路径的新边列表。 |
长度() | 返回路径的长度(边数)。 |
shortestPath ()一个> | 返回解析给定模式的最短路径。 |
列表理解<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#list-comprehensions" title="¶">¶一个>
列表推导式是一种语法构造,它接受一个数组,并根据提供的map和filter指令生成另一个数组。
它们是函数式语言和现代高级语言中常见的构造。在《Cypher》中,他们使用语法:
[年代p一个n>阵列中的元素<年代p一个nclass="p">|年代p一个n>输出elem<年代p一个nclass="o">]年代p一个n>
数组
可以是产生数组的任何表达式:文字、属性引用或函数调用。在条件
仅是仅通过某个标准的项目元素的可选参数。如果省略,则阵列中的所有元素将在输出中表示。|输出elem
是一个可选参数,允许对输出数组中的元素进行转换。如果省略,输出元素将与它们相应的输入相同。
以下查询收集任何长度的所有路径,然后为每个值生成包含该数组姓名
每个结点的性质排名
财产大于10:
匹配<年代p一个nclass="nv">p年代p一个n><年代p一个nclass="o">=()年代p一个n>-<年代p一个nclass="o">[年代p一个n>*<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">()年代p一个n>返回<年代p一个nclass="o">[年代p一个n>节点中的节点<年代p一个nclass="o">(年代p一个n>p<年代p一个nclass="o">)年代p一个n>在节点。等级><年代p一个nclass="m">10年代p一个n><年代p一个nclass="p">|年代p一个n>node.name<年代p一个nclass="o">]年代p一个n>
存在理解函数<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#existential-comprehension-functions" title="¶">¶一个>
的函数任何()
,所有()
,单身的()
和没有()
使用列表识别语法的简化形式并返回布尔值。
任何<年代p一个nclass="o">(年代p一个n>阵列中的元素<年代p一个nclass="o">)年代p一个n>
它们可以对任何形式的输入数组进行操作,但对于路径过滤特别有用。下面的查询收集所有经过的边的权值小于3的任意长度的路径:
匹配<年代p一个nclass="nv">p年代p一个n><年代p一个nclass="o">=()年代p一个n>-<年代p一个nclass="o">[年代p一个n>*<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">()年代p一个n>在哪里<年代p一个nclass="o">(年代p一个n>边的关系<年代p一个nclass="o">(年代p一个n>p<年代p一个nclass="o">)年代p一个n>边缘的地方。重量<<年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n>返回p
观点<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#point" title="¶">¶一个>
的点()
功能预计表单的一个地图参数:
返回点<年代p一个nclass="o">({年代p一个n>纬度:lat_value经度:lon_val<年代p一个nclass="o">})年代p一个n>
关键的名字纬度
和经度
是区分大小写的。
由此函数构建的点可以保存为节点/关系属性或在查询中使用,例如在a中距离
函数调用。
最短路径<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#shortestpath" title="¶">¶一个>
的shortestPath ()
使用表单调用函数:
匹配<年代p一个nclass="o">(年代p一个n>一个<年代p一个nclass="o">{年代p一个n>v:<年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">})年代p一个n>,<年代p一个nclass="o">(年代p一个n>b<年代p一个nclass="o">{年代p一个n>v:<年代p一个nclass="m">4年代p一个n><年代p一个nclass="o">})年代p一个n>返回shartestpath.<年代p一个nclass="o">((年代p一个n>一个<年代p一个nclass="o">)年代p一个n>-<年代p一个nclass="o">[年代p一个n>:l *<年代p一个nclass="o">]年代p一个n>-><年代p一个nclass="o">(年代p一个n>b<年代p一个nclass="o">))年代p一个n>
唯一最短路径
参数是一个遍历模式。必须在函数调用之前解析此模式的端点,并且不能在模式中引入属性过滤器。关系模式可以指定要考虑的任意数量的关系类型(包括零)。如果指定了最小跳数,则只能是0或1,而最大跳数可以是任意数。如果找不到最短路径,则返回NULL。
JSON格式<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#json-format" title="¶">¶一个>
Tojson()
以JSON格式返回输入值。对于基本数据类型和数组,这种转换是常规的。地图及地图投影(toJSON(node {.prop})
)转换为JSON对象,节点和关系也是如此。
节点对象的JSON格式为:
{年代p一个n><年代p一个nclass="s2">“类型”年代p一个n>:<年代p一个nclass="s2">“节点”年代p一个n>,<年代p一个nclass="s2">“ID”年代p一个n>: ID<年代p一个nclass="o">(年代p一个n>int<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="s2">“标签”年代p一个n>:<年代p一个nclass="o">[年代p一个n>标签<年代p一个nclass="o">(年代p一个n>细绳<年代p一个nclass="o">)年代p一个n>X N<年代p一个nclass="o">]年代p一个n>,<年代p一个nclass="s2">“特性”年代p一个n>:<年代p一个nclass="o">{年代p一个n>property_key<年代p一个nclass="o">(年代p一个n>细绳<年代p一个nclass="o">)年代p一个n>:财产_value<年代p一个nclass="o">}年代p一个n><年代p一个nclass="o">}年代p一个n>
关系对象的JSON格式为:
{年代p一个n><年代p一个nclass="s2">“类型”年代p一个n>:<年代p一个nclass="s2">“关系”年代p一个n>,<年代p一个nclass="s2">“ID”年代p一个n>: ID<年代p一个nclass="o">(年代p一个n>int<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="s2">“标签”年代p一个n>:标签<年代p一个nclass="o">(年代p一个n>细绳<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="s2">“特性”年代p一个n>:<年代p一个nclass="o">{年代p一个n>property_key<年代p一个nclass="o">(年代p一个n>细绳<年代p一个nclass="o">)年代p一个n>:财产_value<年代p一个nclass="o">}年代p一个n><年代p一个nclass="s2">“开始”年代p一个n>: src_node<年代p一个nclass="o">(年代p一个n>节点<年代p一个nclass="o">)年代p一个n>,<年代p一个nclass="s2">“结束”年代p一个n>:dest_node.<年代p一个nclass="o">(年代p一个n>节点<年代p一个nclass="o">)年代p一个n><年代p一个nclass="o">}年代p一个n>
程序<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#procedures" title="¶">¶一个>
使用语法调用过程:
graph.query.年代ocial<年代p一个nclass="s2">“呼叫db.labels()”年代p一个n>
或变体:
graph.query.年代ocial<年代p一个nclass="s2">"CALL db.labels() YIELD label"年代p一个n>
YIELD修饰符仅在显式指定时才需要;默认情况下,' yield '列中的值将自动发出。
过程 | 参数 | 收益率 | 描述 |
---|---|---|---|
db.labels. | 没有一个 | 标签 |
生成图中的所有节点标签。 |
db.relationshipTypes | 没有一个 | relationshipType |
在图中产生所有关系类型。 |
db.propertyKeys | 没有一个 | propertyKey |
生成图中的所有属性键。 |
db.indexes. | 没有一个 | 类型 ,标签 ,属性 |
生成图中的所有索引,表示它们是完全匹配的还是全文的,以及每个索引包含哪些标签和属性。 |
db.idx.fulltext.createNodeIndex | 标签 ,财产 [,财产 …] |
没有一个 | 在标签和1个或更多指定属性上构建一个全文可搜索索引。 |
db.idx.fulltext.drop.drop. | 标签 |
没有一个 | 删除与给定标签关联的全文索引。 |
db.idx.fulltext.querynodes. | 标签 ,细绳 |
节点 ,分数 |
检索给定标签上的全文索引中包含指定字符串的所有节点。 |
algo.pagerank. | 标签 ,关系类型 |
节点 ,分数 |
在给定标签的节点上运行pagerank算法,只考虑给定关系类型的边。 |
algo.bfs.一个> | 源节点 ,最高标准 ,关系类型 |
节点 ,边缘 |
执行BFS以查找连接到源的所有节点。一种最大水平 of 0表示无限制,非null关系类型 定义可能被遍历的关系类型。 |
dbms.procedures() | 没有一个 | 姓名 ,模式 |
列出DBMS中的所有过程,每个程序的名称和模式(读/写)产生。 |
算法<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#algorithms" title="¶">¶一个>
BFS<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#bfs" title="¶">¶一个>
广度优先搜索算法接受4个参数:
源 - 节点(节点)
-搜索的根源。
最大级别(整数)
—如果大于0,则该参数指示BFS应该遍历多少层。1只检索源的邻居,2检索2跳内的所有节点,依此类推。
关系类型(字符串)
- 如果此参数为null,则将遍历所有关系类型。否则,它指定单个关系类型来执行BFS。
它可以产生两个输出:
节点
-连接到源的所有节点的数组,且不违反输入约束。
边缘
- 在搜索期间遍历的所有边缘数组。这不一定包含在树中连接节点的所有边缘,连接相同源和目的地的周期或多个边缘在该算法测试的可达性上没有轴承。这些可用于构造表示BFS树的定向非循环图。发射边缘会出现一个小的表现罚款。
索引<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#indexing" title="¶">¶一个>
RedIsgraph支持节点标签的单个属性索引。
可以为字符串、数字和地理空间数据类型建立索引。
创建语法是:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“创建指数:人(年龄)”年代p一个n>
在显式创建索引之后,引用该标签和筛选器中任何索引属性的查询将自动使用该索引。
图。解释G<年代p一个nclass="s2">“匹配(p:person),p.age> 80返回p”年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“结果”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“项目”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“指数扫描|(P:人)”年代p一个n>
这可以显著改进使用特定过滤器的查询的运行时。一个指数:用人单位(名称)
,将极大地有利于查询:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"MATCH (:Employer {name: 'Dunder Mifflin'})-[: employees]->(p:Person) RETURN p"年代p一个n>
一个利用地理空间索引查找的例子雇主
距离斯克兰顿5公里以内的节点
graph.query.DEMO_GRAPH<年代p一个nclass="s2">"WITH point({latitude:41.4045886, longitude:-75.6969532}) AS scranton MATCH (e:Employer)location, scranton) < 5000 RETURN e"年代p一个n>
地理空间索引目前只能使用<
和<=
过滤器;匹配给定半径之外的节点使用常规匹配来执行。
单个索引可以使用匹配语法删除:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“下降指数:人(年龄)”年代p一个n>
全文索引<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#full-text-indexes" title="¶">¶一个>
RediSgraph利用了索引能力<一个href="https://oss.redislabs.com/redisearch/index.html">RediSearch一个>通过过程调用提供全文索引。上构造全文索引标题
属性电影
,使用语法:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“叫db.idx.fulltext。createNodeIndex('Movie', 'title')"年代p一个n>
(通过将属性的名称添加到上述参数集,或者对附加名称再次使用此语法,可以将更多属性添加到该索引中。)
现在可以调用这个索引来匹配包含在其中的所有单词:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“叫db.idx.fulltext。queryNodes('Movie', 'Book') YIELD node RETURN node.title"年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“node.title”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“丛林书”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">《生命之书》年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">"查询内部执行时间:0.927409毫秒"年代p一个n>
这个CALL子句可以与其他Cypher子句交叉,以执行更复杂的操作:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“呼叫db.idx.fulltext.querynodes('电影','book')屈服节点为m年代p一个n><年代p一个nclass="s2">其中m.genre ='冒险'年代p一个n><年代p一个nclass="s2">通过m.rating返回m阶“年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“m”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“ID”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="o">(年代p一个n>整数<年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1168年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“标签”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“电影”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“特性”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“类型”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“冒险”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“评分”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“7.6”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“投票”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="o">(年代p一个n>整数<年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">151342年代p一个n><年代p一个nclass="m">4年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“年”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="o">(年代p一个n>整数<年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">2016年代p一个n><年代p一个nclass="m">5年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“标题”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“丛林书”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“查询内部执行时间:0.226914毫秒”年代p一个n>
除了产生匹配节点外,全文索引扫描将返回每个节点的分数。这是<一个href="https://oss.redislabs.com/redisearch/Scoring/">TF-IDF一个>节点的得分,由搜索项在节点中出现的次数以及它们分组的紧密程度来决定。这可以在例子中看到:
graph.query.DEMO_GRAPH<年代p一个nclass="s2">“呼叫db.idx.fulltext.querynodes('node','hello world')产量节点,分数返回得分,node.val”年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“分数”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“node.val”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“2”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“hello world”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“1”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">"你好,一个不同的世界"年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“缓存执行:1”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">查询内部执行时间:0.335401毫秒年代p一个n>
图。配置文件<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphprofile" title="¶">¶一个>
执行查询并为每个操作的执行生成一个增强了度量的执行计划。
参数:图形名称,查询
返回:查询执行计划的字符串表示形式,包含每个操作产生的结果和花费的时间的详细信息。
图。配置文件
是平行的入口点吗graph.query.
.它接受并执行相同的查询,但不会发出结果,而是返回操作树结构以及生成的记录数量和每个操作的总运行时。
重要的是要注意,这混合了元素<一个href="//www.szfbf.com/lp/redisgraph-commands/#graphquery">graph.query.一个>和<一个href="//www.szfbf.com/lp/redisgraph-commands/#graphexplain">图。解释一个>.它不是一个干运行,并将执行查询的所有图形修改,但不会输出由a产生的结果返回
子句或查询统计信息。
图。概要imdb<年代p一个nclass="s2">“匹配(actor_a:演员)——(法):- >(电影)< -[:行动](actor_b:演员)年代p一个n><年代p一个nclass="s2">WHERE actor_a <> actor_b年代p一个n><年代p一个nclass="s2">创建(actor_a) - [: COSTARRED_WITH] - > (actor_b)”年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“创建|创造的记录:11208,执行时间:168.208661 ms”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">" Filter | Records produced: 11208, Execution time: 1.250565 ms"年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“有条件的遍历|制作的记录:12506,执行时间:7.705860 ms”年代p一个n><年代p一个nclass="m">4年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“通过标签扫描节点|(Actor_A:Actor)|制作的记录:1317,执行时间:0.104346 ms”年代p一个n>
图。删除<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphdelete" title="¶">¶一个>
完全删除图形和其所有实体。
参数:图的名字
返回:表示操作成功或失败的字符串。
图。删除us_government
注意:要从图中删除一个节点(而不是整个图),请执行匹配
查询并将别名传递给删除
条款:
graph.query.DEMO_GRAPH "MATCH (x:Y {propname: propvalue}) DELETE x"
警告:当您删除一个节点时,该节点的所有传入/传出关系也将被删除。
图。解释<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphexplain" title="¶">¶一个>
构造查询执行计划,但无法运行它。检查此执行计划以更好地了解您的查询将如何执行。
参数:图形名称,查询
返回:查询执行计划的字符串表示形式
图。解释us_government<年代p一个nclass="s2">"MATCH (p:President)-[:BORN]->(h:State {name:'Hawaii'}) RETURN p"年代p一个n>
图。SLOWLOG<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphslowlog" title="¶">¶一个>
返回一个列表,其中包含针对给定图形ID发出的最多10个最慢的查询。
列表中的每一项都有以下结构:
- 处理日志条目的UNIX时间戳。
- 发布命令。
- 发布查询。
- 其执行所需的时间量,以毫秒为单位。
图。SLOWLOG graph_id<年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“1581932396”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“graph.query”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">"MATCH (a:Person)-[:FRIEND]->(e)返回e.name"年代p一个n><年代p一个nclass="m">4年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“0.831”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“1581932396”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“graph.query”年代p一个n><年代p一个nclass="m">3.年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“匹配(我:人) - [:朋友] - >(:人) - [:朋友] - >(FOF:人)返回fof.name”年代p一个n><年代p一个nclass="m">4年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“0.288”年代p一个n>
graph.config.<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphconfig" title="¶">¶一个>
检索或更新RediSgraph配置。参数:获取/设置,<配置名称> [value]
价值
应只在集
上下文,而*
可以代替一个明确的配置名称
如果应该返回所有配置。只有运行时配置可以集
,尽管可以检索所有配置。
127年代p一个n>。0.0.1:6379 >图。配置设置RESULTSET_SIZE<年代p一个nclass="m">1000年代p一个n>好的<年代p一个nclass="m">127年代p一个n>。0.0.1:6379 >图。配置得到RESULTSET_SIZE<年代p一个nclass="m">1年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="s2">“RESULTSET_SIZE”年代p一个n><年代p一个nclass="m">2年代p一个n><年代p一个nclass="o">)年代p一个n><年代p一个nclass="o">(年代p一个n>整数<年代p一个nclass="o">)年代p一个n><年代p一个nclass="m">1000年代p一个n>
图。列表<一个class="headerlink" href="//www.szfbf.com/lp/redisgraph-commands/#graphlist" title="¶">¶一个>
列出键空间中的所有图形键。' ' ' sh 127.0.0.1:6379 >图。列表2)G 3) resources 4) players
一个rticle>