【问题标题】:Ordered children property search有序子属性搜索
【发布时间】:2022-08-19 02:27:58
【问题描述】:

我有一个看起来像这样的图表:

我想编写一个返回正确实体的查询,以搜索它的子项的 value 属性的连接字符串。也就是说,\"foo bar\" 应该返回左边的e:Entity,\"baz\" 也应该如此。 \"ano\" 应该返回正确的e:Entity

我对编写 Cypher 查询很陌生,我不确定如何在正确的时间对 l.value 进行分组和连接。我的预感也是,从性能的角度来看,这可能是有问题的,因为不会有任何索引覆盖这些被搜索的字符串,对吗?有没有办法以更高效的方式组织它?

    标签: neo4j


    【解决方案1】:

    您可以对每个标签值进行搜索,并检查它是否与搜索关键字中的所有单词匹配。

    我将关键字:“foo bar”拆分为列表 [“foo”,“bar”]。然后检查是否在 l 的所有值中都找到了此列表中的所有项目。然后返回实体 e。

    MATCH (e:Entity)--(l:Label)
    WITH e, collect(l.value) as allLabels 
       WHERE all(v in split('foo baz',' ') where v in allLabels)
    RETURN e
    
    sample output:
    ╒══════════════════╕
    │"e"               │
    ╞══════════════════╡
    │{"name":"entity1"}│
    └──────────────────┘
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多