【问题标题】:Gremlin - search for multiple substringsGremlin - 搜索多个子字符串
【发布时间】:2019-11-10 23:09:51
【问题描述】:

对于给定的顶点,我可以找到属性myproperty 是否包含单个子字符串substring1,如下所示:

g.V(993280096)
    .filter({it.get().value("myproperty").contains("substring1")})

如何扩展它以在同一查询中搜索 多个 子字符串?

类似的东西:

g.V(993280096)
    .filter({ it.get().value("myproperty")
                .contains(or("substring1", "substring2"))})

还有比使用 lambda 表达式更好的方法吗?请注意,我不想使用图形数据库(在我的情况下为 JanusGraph)内置函数,因为我使用的是 gremlin-python。

【问题讨论】:

    标签: gremlin janusgraph gremlinpython


    【解决方案1】:

    您可以使用新的文本过滤谓词。例如,在现代示例图中,您可以这样做:

    gremlin> TinkerFactory.createModern().traversal().V().
               has("name", containing("ark").or(containing("os"))).values("name")
    ==>marko
    ==>josh
    

    【讨论】:

      【解决方案2】:

      在发布后我发现了一个解决方案(虽然我不知道这是否是最好的方法)使用matches 而不是contains

      g.V(993280096)
          .filter({ it.get().value("myproperty").matches(".* substring1.*|.* substring2.*")})
      

      【讨论】:

        猜你喜欢
        • 2012-10-15
        • 1970-01-01
        • 2017-06-30
        • 1970-01-01
        • 1970-01-01
        • 2020-06-25
        • 1970-01-01
        相关资源
        最近更新 更多