首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在tinkerpop中链接遍历?(.flatMap()除外)

在TinkerPop中,可以使用.as().select()方法来进行链接遍历,而不使用.flatMap()方法。

.as()方法用于给遍历中的步骤命名,以便在后续的步骤中引用。它可以将遍历中的对象转换为一个标签,然后可以在后续的步骤中使用该标签进行引用。

.select()方法用于选择指定的对象或属性,并将其作为结果返回。它可以与.as()方法结合使用,以选择之前命名的步骤中的对象或属性。

下面是一个示例,展示了如何在TinkerPop中进行链接遍历:

代码语言:txt
复制
GraphTraversalSource g = ...; // 获取图遍历源

// 链接遍历示例
g.V().hasLabel("person").as("p").out("knows").as("friend").select("p", "friend").toList();

在上述示例中,.as("p")将遍历中的当前对象命名为"p",.as("friend")将遍历中的下一个对象命名为"friend"。然后,.select("p", "friend")选择之前命名的"p"和"friend",并将它们作为结果返回。

需要注意的是,TinkerPop是一个开放的图计算框架,不直接提供与特定云计算品牌商相关的产品。如果需要使用TinkerPop进行图计算,可以考虑使用腾讯云的图数据库TencentDB for TinkerPop,它是基于TinkerPop开发的一款云原生图数据库产品。您可以通过以下链接了解更多信息:

TencentDB for TinkerPop 产品介绍

请注意,以上答案仅供参考,具体的实现方式可能会根据具体的业务需求和技术环境而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

伸手党福利-从零开始玩转图库

(示例的vertex1,marko节点)这些stepstraversal中间(示例种 out(‘knows’)以及values(‘name’)) 通过不断执行”traversal.next”输出到右边的结果...Traverser: 代表了在当前遍历过程数据流的一个状态,维护了到当前对象的引用 限于篇幅,更多内容查阅org.apache.tinkerpop.gremlin.process.traversal包对应的源码...总体来说实现了一个OLTP图库,OLAP标准tinkerpop框架里面是可选的,我们暂时不关心janusGraphOLAP方面工作.因为我们生产环境只使用hbase+solr,其他组件实现功能是镜像的...结束语-图库使用场景 推荐系统,总有类似关联推荐 如:用户A喜欢某些item,推荐有相同兴趣其他用户所喜欢的item给用户A,图库里面很容易实现。...g.V(userA).out('liked').aggregate('x').in('liked').out('liked'). where(without('x')).values('name') 搜索引擎作为知识图谱弥补自然语言处理的不足

4.8K30

属性图数据库JanusGraph初探

与关系数据库相反,图数据库是基于现实世界的描述,非常易于理解,也非常容易能形成信息之间的链接,可以轻松遍历整个图来对欺诈活动进行实时侦测。...1.2 Tinkerpop处理机制 Tinkerpop的处理主要是遍历,它的 处理API的基础组件包括如下几部分: TraversalSource:遍历的生产者,domain specific language...当一个图系统实现的TinkerPop3的结构和处理API,则该系统是支持TinkerPop3的并且跟其他支持TinkerPop3的图系统时间复杂度和空间复杂度是没有区别的。...Core TinkerPop3 API是整个架构的基础,它定义了什么是点、边和属性。一个图系统至少要实现Core API。一旦实现,就可在系统是有Gremlin遍历语言。...JanusGraph的schema是可以使用过程修改的,而且不会导致服务宕机,也不会拖慢查询速度。

3.5K50

Gremlin 图查询概述

通过 URI,一个三元组库可以直接链接到任何三元组库的其他任何数据。...图形,节点和关系是最重要的实体; TinkerPopTinkerPop是一种开源图计算框架,是 Apache 软件基金会旗下的一个顶级项目,该项目专注于为图数据库建立行业标准,包括一种名为Gremlin...Gremlin:数据以属性图的形式存在,可以认为是上面两种的混合体,属性仍然,但是联接关系是直接以链接(比如指针)的形式存在的。...graph index 常用于根据属性查询 Vertex 或 Edge 的场景;vertex index 遍历场景非常高效,尤其是当 Vertex 有很多 Edge 的情况下。...graph ,每个 vertex 有数千条Edge,在这些 vertex 遍历效率将会非常低(需要在内存过滤符合要求的 Edge)。

3.9K10

Apache新的顶级项目 TinkerPop

Apache软件基金会最近宣布:TinkerPop 升级为顶级项目 TinkerPop 是一个图计算框架,用来进行实时的事务型处理,和批量的图分析,包含了一系列以 Gremlin 引擎为核心的子项目和模块...不仅适用于单机的小型图,也可以工作多机计算集群的海量图,像 DataStax 和 IBM 等大型组织都在使用,Amazon 最近在使用 TinkerPop 处理他的订单图谱,这个规模非常大,含有万亿数量级的边...TinkerPop 的图处理引擎 Gremlin 非常强大,并支持非常多的开发语言,例如 Python, JavaScript, Scala, Go,选择自己熟悉的语言,即可运行图的遍历处理 TinkerPop...升级为顶级项目意味着Apache会对其注入更多的资源和关注,由更加精英化的流程来管理,所以,值得多熟悉一下 TinkerPop,有可能不久之后他会成长为一个非常流行的框架 TinkerPop官网 http...://tinkerpop.apache.org/

1.5K50

2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

Neo4j每个节点中存储了每个边的指针,因而遍历时效率相当高。 Neo4j分为社区版和企业版,社区版功能受限,另外其提供可视化的客户端感觉很不错。...【2】OrientDB OrientDB据描述性能可以达到Neo4j的数倍,但也有测试表明遍历时磁盘空间增加,以空间换时间,遍历性能不高,但计算最短路径等性能高。...Neo4J和OrientDB插入数据时候都会默认建立索引,索引的不同也造成了其不同操作的性能差异; Neo4J:擅长遍历图及不存在大量关系的节点的图计算 OrientDB:侧重文档数据库,主要还是...SB树索引导致,空间浪费比较大;插入节点与neo4j差不多,但是插入节点关系即边时无优化;图论算法上性能高,但遍历性能低。...; 具备独立的Schema管理模块,丰富完善的Schema校验机制,确保图数据库的数据完整性和一致性; 支持数据的备份和还原,可以不同的后端存储之间转换; 多种ID生成策略应对不同业务场景,拥有完善的索引管理机制

3.5K30

「数据库深度探索」图型数据库JanusGraph支持知识图谱和图型分析

我一直活跃像JanusGraph和Apache TinkerPop这样的图形社区,帮助发展这些开源社区,并使我们的产品团队和客户能够使用图形和其他开源数据技术。...TinkerPop使您能够使用相同的图结构和Gremlin图遍历语言,使用相同的代码来生成多个图数据库。...接下来的几年里,你对JanusGraph和TinkerPop有什么期待帕森斯:我从事图形数据领域已经好几年了,但它仍处于新兴阶段。接下来的几年里,我很乐意看到图形生态系统工具的改进。...TinkerPop 4的开发仍处于非常早期的状态,但是一些主要的改进已经可以确定了。我个人尤其期待的是为Gremlin遍历提供更广泛的执行引擎。...现在,人们可以选择使用单个线程执行遍历(这非常适合实时使用情况),或者使用Spark的计算集群上执行遍历(例如,用于机器学习或图形分析)。

2.4K20

【翻译】Gremlin-Gremlin何许人也?

/gremlin.html Gremlin是Apache TinkerPop 框架下的图遍历语言,而TinkerPop是JanusGraph的搜索引擎。...path().by("name") 步骤:1.找到gremlin节点 2.遍历查找gremlin的被管理关系 3.直到查找到的节点包含title为ceo的节点为止 4.遍历路径的管理者姓名...这意味着不仅所有的TinkerPop启用的图形系统都能执行Gremlin遍历,而且每个Gremlin遍历都可以被评估为实时数据库查询或批处理查询。...命令式的Gremlin遍历告诉遍历者如何在遍历的每一步进行。 例如,下面的命令遍历首先将遍历器放置表示Gremlin的顶点处。...Gremlin旨在为用户提供表达查询的灵活性,并为系统提供者提供如何有效评估针对其启用TinkerPop的数据系统的遍历的灵活性。

2.4K30

如何在Ubuntu 16.04上使用Cassandra和ElasticSearch设置Titan Graph数据库

本教程,您将安装Titan 1.0,然后配置Titan以使用Cassandra和ElasticSearch。...图形数据库,您主要通过遍历它来查询数据,而不是像关系数据库一样检索具有连接和索引的记录。为了遍历图形,我们需要来自graph参考变量的图形遍历源。以下命令可实现此目的。...gremlin> g = graph.traversal() 您使用g变量执行遍历。让我们使用该变量来创建几个顶点。顶点就像SQL的行。...本教程,我们将使用Cassandra作为存储引擎,因为它具有高可扩展性和高可用性。...WantedBy指令创建一个目录调用multi-user.target的/etc/systemd/system目录。Systemd将在目录创建该单元文件的符号链接

2.3K20

Flink 是如何将你写的代码生成 StreamGraph 的 (上篇)

一、絮叨两句 新的一年又来了,不知道大家有没有立几个每年都完不成的 FLAG ? 反正我立了,我今年给自己立的 FLAG 是大致阅读大数据几个框架的源码。...之前几篇源码阅读的文章,不知道大家有没有亲自动手打开 Idea 去试一试,这里我再贴一下文章链接,大家可以再回顾一下。...通俗点讲就是,FlatMap 的 transformation 记录了它的输入是 env.fromElements() 。...所以,看到这基本能够理解,我们写的代码,其实本质都是 Flink 封装后对外暴露的简单易用的 api,Flink 背后做了大部分事情。...也调用了 getExecutionEnvironment().addOperator(sink.getTransformation()); 九、生成 StreamGraph 这个生成的过程,就是递归遍历

1.2K21

用Jaeger做数据分析|跟踪告诉我们更多!

指标 我们深入研究平台概述之前,我想讨论一下从跟踪可以派生出哪些指标标准。...跟踪质量 毫无疑问,适当的跟踪工具是组织展开跟踪基础设施的最困难的部分。因此,指标程序的应用在评估跟踪采用方面的表现如何是很重要的。...该解决方案计算指标并将结果存储Cassandra表。结果只是计数器,因此我们可以将它们导出到任何指标系统。但是,前一种解决方案还提供指向未通过某个质量指示器的跟踪的链接。这被证明是非常有用的。...但是,如果必须将数百个跟踪链接到单个指标数据点,那么即使是跟踪范例也可能是不够的。...我们决定重用现有的图API和Apache TinkerPop项目中的查询/遍历语言Gremlin。

2.1K10

linux环境安装可操作图库语言Gremlin的图框架HugeGraph

首先,在数据结构,图是一种由顶点(vertex)集合及顶点间关系集合组成的一种非线性数据结构。...常见的图数据库有Neo4j,JanuasGraph,Tigergraph等,其中,Gremlin是一种操作图数据库的图语言,它是Apache ThinkerPop框架下的图遍历语言。...网盘下载地址: 链接:https://pan.baidu.com/s/11qPFOFU-d9nxGEdws4zggQ 提取码:pqpy 利用HugeGraph学习Gremlin,主要只用安装以上两个包...浏览器测试运行下,输入1+3,若能显示[4],即已经完整启动完成,可在以下Studio界面玩Gremlin图数据库语言了。 ?...过程遇到的问题: 刚开始,我参考网上一些教程,把HugeGraph Studio的配置文件graph.server.host改成0.0.0.0。 ?

1.9K30

图数据库调研

Gremlin:数据以属性图的形式存在,属性仍然,但是联接关系是直接以链接(比如指针)的形式存在的。查询的本质是图遍历,擅长解决求图的直径、点到点之间的路径。...年的排行榜,其继任者 JanusGraph 也快速跟进; 此外一些国内还有一些图开源项目,如 HugeGraph ,将在后面一部分介绍。...用 Gremlin 查询 Apache TinkerPop3样式属性图。Gremlin 是一种图遍历语言,其中查询是遍历节点边缘之后离散步骤构成的遍历。 用 SPARQL 查询 RDF。...(Gremlin Server是Apache Tinkerpop的一个组件)。...OrientDB,任何类型的数据都是可搜索的,用户域的建模支持面向对象的概念,可以很容易地扩展。每个模型不只是一个层,而是共存于一个引擎。可选无模式、全模式或混合模式。

6.5K30

解惑图数据库!你知道什么是图数据库吗?

图数据库图将实体表现为节点,实体与其他实体连接的方式表现为联系(边)。...对比非原生图解决方案,随着信息量的增加,使用面向对象的数据库存储数据库使数据操作变得越来越慢。 Neo4J可以以每秒一百万条的惊人速度提供结果,因为数据链接部分或实体物理上是已经相互连接的。...JanusGraph是一个可扩展的图形数据库,专门用于存储和查询分析分布多机集群的数千亿个顶点和关系边的图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。...吸收了对属性图模型(Property Graph Model)的支持和对属性图模型进行遍历的Gremlin遍历语言。...Gremlin Server是Apache Tinkerpop的一个组件 JanusGraph集群包含一个、或者多个JanusGraph实例。

4.6K270

图解图库JanusGraph系列-解惑图数据库,你知道什么是图数据库吗?

我们知道一个图包含节点和边,如下图: 图数据库图将实体表现为节点,实体与其他实体连接的方式表现为联系(边)。...对比非原生图解决方案,随着信息量的增加,使用面向对象的数据库存储数据库使数据操作变得越来越慢。 Neo4J可以以每秒一百万条的惊人速度提供结果,因为数据链接部分或实体物理上是已经相互连接的。...JanusGraph是一个可扩展的图形数据库,专门用于存储和查询分析分布多机集群的数千亿个顶点和关系边的图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。...吸收了对属性图模型(Property Graph Model)的支持和对属性图模型进行遍历的Gremlin遍历语言。...Gremlin Server是Apache Tinkerpop的一个组件 JanusGraph集群包含一个、或者多个JanusGraph实例。

2.5K40

Java8(1):当 Lambda 遇上受检异常

JDK1.8 时添加,深度优先遍历一个 Path (目录),返回这个目录下所有的 Path(目录和文件),通过 Stream 返回; Files.lines(Path) 也是 JDK1.8...如果 Stream 的流式操作多几个需要抛出受检异常的情况,那代码真是太不直观了,所以为了 one-liner expression 的 Lambda,我们需要解决的办法。...(因为目标类型的 apply 方法已经将异常抛出了)—— 之所以原来的 Lambda 需要捕获异常,就是因为流式操作 flatMap 中使用的 java.util.function 包下的 Function...public static interface UncheckedFunction { R apply(T t) throws Exception; } } 然后原先的代码...不过既然受检异常已经是 Java 的客观存在的事物,所谓“道高一尺,魔高一丈” —— 总是会有办法来应对。

37520

3. JanusGraph快速开始

本节将使用Gods图作为演示示例,此图JanusGraph演示中广泛使用。该图如下图所示。这个抽象的数据模型对应图模型的属性,这个特定的实例描述了罗马万神殿中人物和地点之间的关系。...JanusGraph另外一种索引是以顶点为中心的索引。以顶点为中心的索引可以加快图的遍历。以顶点为中心的索引将在后续中讲解。...上一节,证明了Saturn的孙子是Hercules。这也可以使用循环的方式来查询,实际上Hercules是从Saturnin('father') 路径上循环两次到达的点。...在上一节,发现Hercules参与了雅典附近的两场战争。 可以通过Hercules顶点遍历battled边来检索这些事件。...每个遍历查询的说明注释显示。

3.3K20

了解Multi-Model API

简介 OrientDB诞生之初是文档数据库,其中包含的无索引链接设计让它完美地具备了图数据库的能力,但彼时其核心API依然是Document API,随后,基于Apache TinkerPop 2.x...2的API需要依赖 orientdb-graphdb模块,而想使用TinkerPop 3 API的话,需要依赖 orientdb-gremlin模块。...都声明成spring的bean,方便依赖注入以及其生命周期的管理(OrientDB、ODatabasePool均重写了close方法,Spring会在应用退出时释放其占用的资源,实现优雅停机,kill -9除外...代码toJSON方法中指定了fetchPlan,加载Account的profile和其关注的Account记录。...List results = resultSet.stream().map(r -> r.toJSON()).collect(Collectors.toList()); } 对于复杂的图遍历场景

84420

厉害了,一个更智能的 JavaScript 映射器:array.flatMap()

doubled); // logs [6, 12] 事例地址:https://jsfiddle.net/dmitri_p... array.map()和 array.filter() 可以解决问题,但有没有更简短的方法...return [value1, value2, ..., valueN]; }[, thisArg]); 回调函数原数组的每个iteam上被调用,有3个参数:当前项、索引和原数组。...当扁平[2 * number]数组时,结果数组只添加2 * number。 你也可以使用 array.flatMap()来增加映射的数组的项目数量。...同时又能控制你想在新的映射数组添加多少项,那么 array.flatMap() 方法就是一个好办法。...array.flatMap(callback) 的回调函数被调用,有3个参数:当前迭代的项、索引和原始数组。然后,从回调函数返回的数组1层深处被扁平化,得到的项目被插入到所产生的映射数组

69010
领券