从匹配查询到 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 *
我不确定这是否是最好的方法,但它对我有用
我想使用 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 *
我不确定这是否是最好的方法,但它对我有用