在处理可选字段时,在 gremlin 中使用注入进行长遍历

2024-02-20

我正在构建一个长遍历以在一个查询中添加数百个顶点。我从官方网站上看到,推荐的方法是注入对象列表并在那里添加顶点:http://tinkerpop.apache.org/docs/current/recipes/#long-traversals http://tinkerpop.apache.org/docs/current/recipes/#long-traversals

然而,就我而言,有很多对象具有可选字段,以官方文档中的示例为例,可能有人没有“年龄”属性或“名称”属性,我可以使用选择来做某事像这样:

g.inject().unfold().as('a').addV().choose(select('a').select('age'), property('age', select('a').select('age')))

但是 Neptune 中的选择步骤没有优化,这会增加查询的延迟,是否有其他解决方案?


已经在 gremlin-users 邮件列表上回答了,但为了结束循环,这里再次回答:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> 
gremlin> data = [["name": "Huimin Yang"],
                 ["name": "Daniel Kuppitz", "age": 37]]
==>[name:Huimin Yang]
==>[name:Daniel Kuppitz,age:37]
gremlin> 
gremlin> g.inject(data).unfold().as("m").
           addV("person").as("v").
           select("m").unfold().as("kv").
           select("v").
             property(select("kv").by(keys), select("kv").by(values)).iterate()
gremlin> 
gremlin> g.V().valueMap()
==>[name:[Huimin Yang]]
==>[name:[Daniel Kuppitz],age:[37]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在处理可选字段时,在 gremlin 中使用注入进行长遍历 的相关文章

  • 使用键值存储实现的图数据库

    我需要一个图形数据库 该数据库需要备份并可能在较低的抽象级别进行访问 为了负载平衡 它也必须是分布式的 单个主复制就可以 我知道可以使用自引用键值存储来实现图形数据库 Git 对象数据库就是这种模式的一个示例 我发现大多数图数据库令人沮丧的
  • 使用 Gremlin 在二部图上随机游走

    我想根据给定的用户偏好 用户喜欢的项目 基于使用groovy中的gremlin在有向二分图上进行随机游走来对项目进行排名 该图具有以下基本结构 用户1 喜欢 gt 项目A 项目B 此后我提出的查询 def runRankQuery def
  • 通过 Tinkerpop 使用特定模型将(数百万行)数据导入 Janusgraph 的最佳方法

    刚开始使用 Tinkerpop 和 Janusgraph 我正在尝试根据文档来解决这个问题 我有三个数据集 每个数据集包含大约 2000 万行 csv 文件 有一个特定的模型 其中的变量和行需要连接 例如什么是顶点 什么是标签 什么是边 等
  • 如何获取 Titan 中的索引键列表?

    我正在使用 Titan v0 3 1 并且希望查看我已经通过索引建立索引的键的列表createKeyIndex 我怎样才能做到这一点 在 Gremlin shell 中 您可以使用蓝图键可索引图 https github com tinke
  • 三元组存储和图数据库有什么区别?

    有三元组 语义数据库 也有通用图形数据库 两者都基于通过关系将一个 项目 链接到另一个 项目 的类似概念 Triplestore 支持 RDF 并由 SPARQL 查询 但此类附加组件也可以 并且已经 在通用图形数据库之上实现 使您更喜欢语
  • Tinkerpop Gremlin 深度优先搜索顺序

    我有一个非常简单的示例图 我试图对其进行深度优先查询 假设图的边看起来像这样 A gt B A gt C B gt D B gt E C gt F C gt G 从 A 开始的深度优先搜索应该返回 A B D E C F G 但如果我能得到
  • Gremlin Python createIndex (Tinkerpop)

    我目前正在使用 Tinkerpop 与gremlin python 客户端 https pypi python org pypi gremlinpython 3 2 4使用默认的TinkerGraph Gremlin https tinke
  • 通过函数链创建节点和边时,在命令末尾使用 Iterate() 步骤。这一步有什么用呢?

    在 Tinkerpop 3 3 Gremlin 中通过函数链创建节点和边时 在命令末尾使用 Iterate 步骤 这个 iterate 步骤的意义是什么 我在解释其功能的文档中找不到任何提及 iterate 步骤的内容 有人可以向我指出文档
  • python gremlin连接超时问题

    获取 gremlin 驱动程序超时问题如下 我们已经提高了吞吐量并进行了尝试 但仍然在进行中 12 05 2019 06 50 33 gt 1376bf ERR Traceback most recent call last 12 05 2
  • Janusgraph在.net core 3.0中使用Gremlin查询

    我们目前在 net core 3 0 应用程序中使用 gremlin net 库来连接到 Janusgraph db 我们需要在 janusgraph 中执行以下查询g V 12345 outE myedge has datetime lt
  • StandardTitanGraph java.lang.Throwable:挂钩创建跟踪错误

    我在 Windows 中运行的 scala 项目中遇到以下异常 Titan cassandra DEBUG c t t g database StandardTitanGraph 安装的关闭挂钩 Thread Thread 9 5 main
  • Neo4j慢创建方法[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 在我的 Neo4j Neo4j Spring Data 应用程序中 我有以下实体 VoteGroup包含关系VOTED ON an
  • 将 Neo4j 子图加载到 Networkx 中

    我一直通过 python 的 Bulbflow 处理 Neo4j 现在需要一种保存 导出子图的方法 我见过 Java 甚至 Ruby 方法来做到这一点 但是简单的 Python 方法似乎对我隐藏着 到目前为止 我已经找到了两条可能的路径 访
  • 在 Gremlin 中合并地图

    我正在尝试编写一个满足响应对象中两个要求的查询 必须包括all顶点的属性 无需在查询中指定各个字段 必须将结果展平到对象的同一水平上 作为单独的查询 我可以这样做 1 valueMap query g V 1 valueMap by unf
  • titan 1.0.0 中的 gremlin 并未在 Windows 上开箱即用

    我正在关注http s3 thinkaurelius com docs titan 1 0 0 getting started html http s3 thinkaurelius com docs titan 1 0 0 getting
  • Titan 顶点中心索引与 Neo4j 标签

    在接近这个问题时 我试图对这两种技术进行比较 我想知道你们中是否有人已经有处理其中任何一种或两种技术的经验 我主要对处理类似用例时的性能数字感兴趣 这两个概念之间的区别是全局索引和本地索引之间的区别 据我了解 Neo4j顶点标签允许您通过顶
  • Rails 3 和图形数据库

    在 Postgresql 上运行的 Rails 3 应用程序需要切换到图形数据库才能成长 它们有很多 并且都提供不同类型的 API 主要是 REST 我深受启发talks http nosql mypopescu com post 3429
  • 使用 Gremlin 查询语言获取边属性以及源和目标顶点 ID

    我正在尝试检索边缘属性作为值以及目标和源节点 ID 我当前的数据库如下所示 Edge id label outV inV name ID 0 edge 0 1 E 0 Nodes id label name ID 0 node A 0 1
  • 如何在 Gremlin 中进行分页

    Tinkerpop 3中如何进行分页 我想获取查询的前 10 个元素 然后获取接下来的 10 个元素 而不必将它们全部加载到内存中 例如 下面的查询返回 1000 000 条记录 我想以 10 x 10 的形式获取它们 而不是一次加载所有
  • Gremlin 按顶点属性分组并获取同一顶点中其他属性的总和

    我们有顶点来存储各种作业及其类型 并算作属性 我必须按状态和数量进行分组 我尝试了以下查询 该查询适用于一个属性 receiveCount g V hasLabel Jobs has Type within A B C group by T

随机推荐