从匹配查询到 APOC 的 Neo4j 密码链输出

Neo4j Cypher chain output from match query to APOC

我想使用 Neo4j Cypher apoc.index.search 程序。我目前正在使用 Neo4j CE 3.1.0。我已经成功地将程序设置为独立查询并对其进行了测试,例如:

call apoc.index.search("Contact2", "Contact2.FirstName:monica~")

现在,我想先做一个 MATCH 查询来获取一组节点,然后假脱机 FirstNames 找到并在 Contact2 节点上调用这个 APOC 过程,看看是否我可以在 Contact2 节点和相应的权重中找到任何类似的。

这可能吗?我已经尝试使用 WITH 关键字进行多次迭代,但无济于事。谢谢。

您可以将每个 firstName 值作为单独的模糊搜索词添加到传递给 apoc.index.search 的查询字符串中。例如:

MATCH (f:Foo)
WITH REDUCE(
    s = 'Contact2.FirstName:', n IN COLLECT(DISTINCT f.firstName) |
    s + n + '~ '
  ) AS query
CALL apoc.index.search("Contact2", query)
...

@cybersam 谢谢你的回答。我没有尝试你的,但我也只是自己解决了这个问题(经过几天的尝试)。我的语法如下:

// Contact1 是我的消息来源 table。 Contact2 是我的目的地 table

MATCH (a:Contact1) WITH a.FirstName AS A 
CALL apoc.index.search("Contact2", "Contact2.FirstName:" + A + "~") 
YIELD node, weight RETURN *

我不确定这是否是最好的方法,但它对我有用