Neo4j-迭代给定节点列表的公共节点
我不知道在neo4j中迭代列表。请有人就下面的问题提出建议 例如: 图中有一些节点。 然后,我将给出几个(总是变化的,这是用户输入)关键字来搜索这些单词共有的节点。在我的图表中,每个单词都是一个节点Neo4j-迭代给定节点列表的公共节点,neo4j,cypher,Neo4j,Cypher,我不知道在neo4j中迭代列表。请有人就下面的问题提出建议 例如: 图中有一些节点。 然后,我将给出几个(总是变化的,这是用户输入)关键字来搜索这些单词共有的节点。在我的图表中,每个单词都是一个节点 Ex: Input: [Best sports car] output: connected nodes for Best are [samsung,porshe,ambassdor,protein,puma] connected nodes for sports are [cric
Ex: Input: [Best sports car]
output: connected nodes for Best are [samsung,porshe,ambassdor,protein,puma]
connected nodes for sports are [cricket,racing,rugby,puma,porshe]
connected nodes for car are [porshe,ambassdor,benz,audi]
Common nodes to all words are : [porshe]
Result is : porshe
我不知道如何迭代每个单词并存储匹配结果。请有人提出任何意见 像这样的东西是你想要的吗 从请求搜索的单词集合开始 将每个单词与图表匹配 在列表中收集连接的单词
with ['Best', 'sports', 'car'] as word_coll
unwind word_coll as word
match (:Word {name: word})--(conn_word:Word)
return word,collect(conn_word)
这是你想要的吗 从请求搜索的单词集合开始 将每个单词与图表匹配 在列表中收集连接的单词
with ['Best', 'sports', 'car'] as word_coll
unwind word_coll as word
match (:Word {name: word})--(conn_word:Word)
return word,collect(conn_word)
为了测试以下工作查询,我将做一些假设:
- words节点具有标签
和:Word
属性名称
- 保时捷、彪马等。。节点具有标签
和:Item
名称属性
节点与Item
节点具有传出的Word
关系CONNECT
porsche
正在匹配3个单词,这是给定单词列表的大小
,然后您可以简单地将计数聚合中的3
与此大小
进行比较
为了全面了解聚合的工作原理,您可以参考手册:
您可以在此处测试查询:
如果将单词作为参数传递,则这将是相应的查询:
MATCH (n:Word)<-[:CONNECT]-(i:Item)
WHERE n.name IN {words}
WITH i, count(*) as c
WHERE c = size({words})
RETURN i
MATCH(n:Word)为了测试以下工作查询,我将做一些假设:
- words节点具有标签
:Word
和名称
属性
- 保时捷、彪马等。。节点具有标签
:Item
和名称属性
Item
节点与Word
节点具有传出的CONNECT
关系
这将给出以下图表:
查询如下(为了模拟给定的单词作为参数,我在查询的开头添加了一个包含单词列表的
将返回以下内容:
您可以看到porsche
正在匹配3个单词,这是给定单词列表的大小
,然后您可以简单地将计数聚合中的3
与此大小
进行比较
为了全面了解聚合的工作原理,您可以参考手册:
您可以在此处测试查询:
如果将单词作为参数传递,则这将是相应的查询:
MATCH (n:Word)<-[:CONNECT]-(i:Item)
WHERE n.name IN {words}
WITH i, count(*) as c
WHERE c = size({words})
RETURN i
MATCH(n:Word)这有点难理解。你能详细解释一下这个问题吗?这有点难理解。你能详细说明一下这个问题吗。