Gremlin - 搜索多个子串

Gremlin - search for multiple substrings

对于给定的顶点,我可以找到 属性 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.

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

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

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

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