代码之家  ›  专栏  ›  技术社区  ›  HT1

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

  •  0
  • HT1  · 技术社区  · 6 年前

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

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

    现在,我想做一个 MATCH 首先查询以获取一组节点,然后假脱机 FirstNames 发现在上调用此APOC过程 Contact2 节点查看是否可以在 联系人2 节点和相应的权重。

    这可能吗?我使用 WITH 关键字,但无效。谢谢

    2 回复  |  直到 6 年前
        1
  •  1
  •   cybersam    6 年前

    您可以添加每个 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)
    ...
    
        2
  •  0
  •   HT1    6 年前

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

    //Contact1是我的源表。Contact2是我的目标表

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

    我不确定这是不是最好的方法,但对我来说很有效