【问题标题】:Gremlin.net textContains equivalentGremlin.net textContains 等价物
【发布时间】:2018-09-24 13:52:58
【问题描述】:

我正在使用 Gremlin.net 库连接到 janus 图形服务器。我正在使用 cassandra 和弹性搜索来进行数据存储和索引。在 gremlin 语言和 gremlin 控制台中,我使用 textContains 在属性的文本中进行搜索。我为此使用了混合索引,但我可以在 Gremlin.net 库中找到对应的索引吗?谁能帮忙?

【问题讨论】:

    标签: c# .net gremlin janusgraph gremlin-server


    【解决方案1】:

    Gremlin.Net 不会有这个。 TinkerPop 没有 JanusGraph 和其他系统拥有的文本或地理搜索谓词。在这一点上,我们把它留给图形提供者来开发这样的扩展。不幸的是,我不知道有任何人为所有 Gremlin 语言变体(如 C#、Javascript 等)做到了这一点。我认为 DSE Graph 是目前唯一这样做的图表提供者。

    【讨论】:

    • 感谢重播。但我可以使用 gremlin 终端执行 g.V().has('FirstName', textContains('Janus')).next() 吗?如果 gremlin 不支持文本搜索,我该怎么做。
    • Gremlin 控制台基于 JVM - 特别是 groovy,但显然其中包括 java。 JanusGraph 是用 Java 编写的,因此可以在那里使用 text/geo 库。您可能正在使用 Gremlin 控制台的 JanusGraph 版本,它将在启动时自动为您从 JanusGraph 导入这些基于 Java 的文本/地理类,这就是它们可用的原因。我的意思不是这些类不存在——只是 JanusGraph 只为 Java 构建它们,而不是 TinkerPop 支持的其他语言,如 .NET
    • 谢谢,我明白了。但是我怎样才能执行这样的查询,你有解决办法吗?
    • 对于 .NET 和其他 GLV,我能想到的唯一解决方法是,对于需要 text/geo 的请求,您需要退回到脚本 api 并将 Gremlin 作为基于字符串的请求发送。
    【解决方案2】:

    JanusGraph 现在有一个库,可扩展 Gremlin.Net 的 JanusGraph 特定方面:JanusGraph.Net

    此库已包含文本谓词。因此,您现在可以直接在 C# 中执行此操作:

    var songName = g.V().Has("song", "name", Text.TextContains("COMES")).Values<string>("name").Next();
    Console.WriteLine(songName); // output: HERE COMES SUNSHINE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2023-03-05
      • 2015-08-10
      • 2015-03-06
      • 2012-03-17
      相关资源
      最近更新 更多