neo4j 如何将单个随机节点与多个关系进行匹配

qkf9rpyu  于 2022-11-23  发布在  其他
关注(0)|答案(2)|浏览(155)

我是一个新手与此。我已经创建了一个数据库的数百个谚语和他们的含义,以及标题词和他们的定义(手段)。
我想生成一个图表的一个随机谚语,但与相关的话和定义。
我当前的密码查询确实返回了一些有趣的数据,如下所示:

MATCH p=()-[:MEANS]-(a:Headword)-[:USED_IN]-(d:Proverb)-[:MEANING]-()

RETURN p, rand() as r
ORDER BY r
LIMIT 1

我得到了一个随机的谚语,但是USED_IN和MEANS关系也被限制为1。
我想产生类似下面的东西,其中有一个单一的谚语和它的含义(橙子),但有关系的话USED_IN(黄色),和这些话的定义(含义)。我怎么能做到这一点?
只是一个FYI的图像下,我把限制在密码查询3。但这也可能产生3谚语等。

jbose2ul

jbose2ul1#

首先尝试获取Proverb节点,然后获取路径:

MATCH (d:Proverb)
WITH d, rand() as r
ORDER BY r
LIMIT 1
MATCH p=()-[:MEANS]-(a:Headword)-[:USED_IN]-(d)-[:MEANING]-()
RETURN p
bvn4nwqk

bvn4nwqk2#

看起来在这种情况下,cypher支持并需要一个额外的LIMIT参数,如下所示:

MATCH (d:Proverb)
WITH d, rand() as r
ORDER BY r
LIMIT 1
MATCH p=()-[:MEANS]-(a:Headword)-[:USED_IN]-(d)-[:MEANING]-()
RETURN p
LIMIT 10

相关问题