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

使用Gremlin,如何从入顶点返回属性,就像我从出顶点返回属性一样?(不是数组)

使用Gremlin,可以通过以下方式从入顶点返回属性:

  1. 使用in步骤将焦点移动到入顶点。
  2. 使用in步骤将焦点移动到入顶点。
    • g.V():选择所有顶点作为起点。
    • hasLabel('出顶点'):筛选出指定标签的出顶点。
    • out('边标签'):根据指定的边标签将焦点移动到相邻的出顶点。
    • in():将焦点移动到入顶点。
    • values('属性名称'):返回入顶点的指定属性值。
    • 例如,如果出顶点的标签是"person",边的标签是"knows",属性名称是"name",可以使用以下查询:
    • 例如,如果出顶点的标签是"person",边的标签是"knows",属性名称是"name",可以使用以下查询:
  • 使用inE().outV()步骤将焦点移动到入边的出顶点。
  • 使用inE().outV()步骤将焦点移动到入边的出顶点。
    • g.V():选择所有顶点作为起点。
    • hasLabel('出顶点'):筛选出指定标签的出顶点。
    • outE('边标签'):根据指定的边标签将焦点移动到相邻的出边。
    • inV():将焦点移动到入边的出顶点。
    • values('属性名称'):返回入顶点的指定属性值。
    • 例如,如果出顶点的标签是"person",边的标签是"knows",属性名称是"name",可以使用以下查询:
    • 例如,如果出顶点的标签是"person",边的标签是"knows",属性名称是"name",可以使用以下查询:

这些方法都可以用于从入顶点返回属性,并且不返回数组。

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

相关·内容

百亿级图数据JanusGraph迁移之旅

其实最开始想到的就是这个方案,但是这个方案对导入的数据有非常严格的要求,它需要每个顶点一行数据,再把这个顶点关联的所有边都关联到这一行,中间用 tab 分隔,第一部分是顶点属性,第二部分是顶点边,...第三部分是顶点边。...并且这个功能并不是很完善,当你的过滤条件是 hasNot, 或者返回边的属性,或者语句后有 limit 操作都会使这个优化失效。...而你能做的只能是想尽办法绕开,例如:has("is_exception", neq("true")) 另一个问题就是 JanusGraph 查询的数据如何返回的问题,Gremlin 返回数据支持多种写法...最常用的就是使用 valueMap 的方式,但是这里面有两个比较大的坑,第一个是返回属性值默认是list类型,第二个是如果返回结果使用多个 valueMap 导致特别消耗内存。

2.7K50
  • Gremlin 图查询概述

    Gremlin是一种函数式数据流语言,可以使得用户使用简洁的方式表述复杂的属性图(property graph)的遍历或查询。...,这里可能会用到索引; out :从上一步结果集合中,拉出一个,即 “vid” 的 id,并把该点对应的那行数据hbase里读取出来(即该点的属性、相邻点、相邻边),返回度节点,返回结果 edgeList1...; out :从上一步结果 edgeList1 中,拉出一个,即把第一个度点拉出来,并把该点对应的那行数据 hbase 里读取出来(即该点的属性、相邻点、相邻边),找出出度节点,返回结果 edgeList2...; has:把 edgeList2 中的第一个节点拉出来,把该点对应的属性字段 hbase 里读取出来,并进行 name 为 jack 的过滤,返回结果; 迭代执行第4步,直至 edgeList2 遍历完毕...举例: Composite Index: // 顶点中含有name属性且值为jack的所有顶点 g.V().has('name', 'jack') Mixed Index: // 顶点中含有age属性且小于

    4.1K10

    大数据图:循环点阵

    因此,对于点阵来说重要的不是它在二维平面上呈现的方式,而是它的元素之间是如何连接的。使用R语言,我们有如下一些针对名为g的点阵基本的描述性统计计算。...遍历一个有向点阵 假设有一个有向点阵,其中所有的边都指向正下和正右的顶点。在这样的结构中,左上角顶点只有度。同样,右下角顶点只有度。...使用Blueprints的TinkerGraph方法来构造一个点阵并通过Gremlin方法来遍历它。...例如,尝试使用Gremlin的遍历方法来确定1000x1000点阵中的所有不同的路径,缺点很快就会暴露出来,Gremlin 将需要和宇宙的年龄一样长的时间来实现。...返回的第一个网站是整数序列在线百科全书。Gremlin发现的序列称为A000984,在页面上有以下注释: “(0,0)到(n,n)的通过(1,0)和(0,1)的点阵路径的数量。

    3.5K60

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

    您还将使用Gremlin数据库创建和查询数据。...在图形数据库中,您主要通过遍历它来查询数据,而不是像关系数据库一样检索具有连接和索引的记录。为了遍历图形,我们需要来自graph参考变量的图形遍历源。以下命令可实现此目的。...每个顶点都有一个顶点类型或其label关联的属性,类似于SQL中的字段。...我们还定义了两个属性,第一个顶点的name与residence,和第二个定点的name与website。现在让我们使用变量sammy和company来访问这些顶点。...现在,让我们来看看公司的吉祥物(一种属性): gremlin> g.V(company).out('hasMascot') 这将返回顶点的传出company顶点,并将它们之间的edge标记为hasMascot

    2.3K20

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

    : 继承自Element,维护了一组度,度的边集合 Edge: 继承自Element,维护一组度,度vertex节点集合....,可以看的出来任意图中的一个起始节点,可以先找到度的边,然后查询边的度节点,这样travesal跳到了下一个节点,反复如此即可完成对图的遍历。...使用64位的顶点Id作Key指向相应顶点的邻接表row。每个边或属性在row中都是一个独立的cell,并且这些cell可以高效的完成插入和删除。...每个边或者属性会保存在顶点的邻接表row的cell中。序列化之后的column数据字节序也反映了原来的Edge标签的key序。...一条边信息会被度、度vetex保留两遍,便于快速定位到邻接节点,可避免表级联查询。

    4.9K30

    十的次方 - 第一部分

    w=160] 各种不同的变量可能会影响将数据加载到图中的方法,但为决策提供最重要指导的属性是大小。本文而言,“大小”是指要加载到图中的估计边数。.... - 将顶点标识符(即userId)作为参数并执行索引查找以确定顶点是否已存在的辅助函数。如果存在,则返回顶点,但如果它不存在,则会创建该顶点。...该DocGraph数据集“展示了医疗保健提供者团队如何提供护理”。该网络中的顶点代表医疗服务提供者,它们由NPI number标识。边表示两个提供者之间的共享交互,其中三个属性进一步限定了该交互。...bg.setVertexIdKey("npi")- 告诉BatchGraph顶点标识符将被存储在一个叫做npi的顶点属性键中。...如果数据可以组织起来的,并且条件允许的话,可以考虑一下使用gpars进行并行加载的方法。 如果有倾向于非JVM语言(如Python)加载数据,可以理清本文思路并在Gremlin中编写加载脚本。

    1.8K50

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

    Gremlin是一种函数式数据流语言,可以使得用户使用简洁的方式表述复杂的属性图(property graph)的遍历或查询。...获取所有”人“的顶点 2. 使用know-edges计算他们的PageRank。 3. 通过他们的朋友排名得分。 4. 获得排名前10位的人。...命令式的Gremlin遍历告诉遍历者如何在遍历中的每一步进行。 例如,下面的命令遍历首先将遍历器放置在表示Gremlin顶点处。...然后那个将自己分裂到Gremlin的所有合作者身上,而这些合作者并不是Gremlin本人。 接下来,遍历者获取这些协作者的管理者,最终被分组为经理姓名计数分布。...“查询语言”和“编程语言”之间的差异并不像我们所教导的那么大。 Gremlin统一了这种鸿沟,遍历可以用任何支持函数组合和嵌套的编程语言编写(每种主要的编程语言都支持)。

    2.5K30

    属性图数据库JanusGraph初探

    使用关系数据库来进行欺诈侦测不是不可行,但表形式并不适合描述数据之间的某些特定的复杂关系,而且在海量数据的情况下,表之间的JOIN操作会带来大量系统性能的损耗,单次运算时间甚至以小时计,导致反欺诈策略无法实时返回结果...大部分分布式图计算引擎基于Google发布的Pregel白皮书,其中讲述了Google如何使用图计算引擎来计算网页排名。 ?...)的集合; Vertex:继承Element,并维护边和边集合; Edge:继承Element,并维护点和出点集合; Property:字符串key关联V ; VertexProperty...Gremlin是一种函数式数据流语言,可以使得用户使用简洁的方式表述复杂的属性图(property graph)的遍历或查询。...为此每导入一个顶点数据都会执行如下逻辑:获取要导入顶点的id值,查询图中是否有某个顶点的bulkLoader.vertex.id值等于id值的,如果等于,则使用要插入的值,更新该图中已存在的顶点属性;如果不存在

    3.6K50

    997. 找到小镇的法官

    只有一个人同时满足属性 1 和属性 2 。给你一个数组 trust ,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。...也就是说,法官的度是n - 1 ,度是0。 那么可以创建拥有N + 1个节点的图(数组),每个节点包含了度和度信息。...至于为什么要多个节点,是因为题目是1~n的顺序编号,多创建一个空节点,就不需要操心下标不对齐的问题了。 然后遍历二维数组,内层数组的第一项就是对应节点的度,第二项就是对应节点的度。...顶点的度是指和该顶点相连的边的条数。特别是对于有向图来说,顶点边条数称为该顶点的「度」,顶点边条数称为该顶点的「度」。而本题就是有向图,也引申出了度和度的概念。...这里使用数组来实现图这种数据结构,每一项都包含图中节点的度信息和度信息。

    20220

    BFS:解决拓扑排序问题

    换句话说,它表示该顶点有多少个直接前驱节点。(简单来说就是对于一个顶点来说,所有指向他的边之和) 度(Outdegree):一个顶点度是指从这个顶点出发有多少条边。...最后我们再来说说拓扑排序,,简单介绍了上面的概念之后,拓扑排序相当简单了,拓扑排序就是先将度为零的顶点删除列出来,,并且将度为0的连接的边删除。...根据上面这个例子就可以推出这个关系,这不是直接转换为我们的拓扑排序了吗,这道题本质就是判断这个图有没有环,如果无环返回true,如果有环返回false。...算法原理: 上面算法原理基本已经讲完了,我们来看看代码如何书写,顺便再讲一点,这里我们要用拓扑排序问题又来了,我们是不是要建一个图,这里有涉及到该如何建图,这里我们讲一种方法,用邻接表建图,邻接表是什么呢...,但是问法上有些许差异,上道题让我们判断,但是这道题让我们返回结果,返回拓扑排序之后的那个数组,我们这里如果能拓扑排序则返回数组,如果不能则返回空的数组

    11810

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

    基于上述场景,我们首先先考虑使用关系型数据库: 一个用户表存储用户详情,上述过程我们需要 接口参获取小李的各种信息 通过小李的各种信息去表中查询对应数据 再根据查出的一度用户去表中查询二度用户,那如果要查多度呢...灵活:图数据库有非常灵活的数据模型,使用者可以根据业务变化随时调整数据模型,比如任意添加或删除顶点、边,扩充或者缩小图模型这些都可以轻松实现,这种频繁的 Schema 更改在关系型数据库上不能到很好的支持...TinkerPop中吸收了对属性图模型(Property Graph Model)的支持和对属性图模型进行遍历的Gremlin遍历语言。...基本概念 同大多数图数据库一样,JanusGraph采用 属性图 进行建模。...ps:避免篇幅过大,架构相关的信息会在后续的博文详细说明 如何使用 作为一个数据库系统,它是要用来为应用程序存储数据用的,那么应用程序应该如何使用JanusGraph来为自己存储数据呢?

    4.7K270

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

    : 一个用户表存储用户详情,上述过程我们需要 接口参获取小李的各种信息 通过小李的各种信息去表中查询对应数据 再根据查出的一度用户去表中查询二度用户,那如果要查多度呢,如果想要获取用户的其他信息呢...,就要join,多表join、多次join想想刺激~ 那么,基于图论的图数据库诞生了,详细的我们下面再介绍,先基于将数据存储到图库中,用户做为节点、用户与用户之间的关系作为边、用户的其他属性作为节点的属性...TinkerPop中吸收了对属性图模型(Property Graph Model)的支持和对属性图模型进行遍历的Gremlin遍历语言。...基本概念 同大多数图数据库一样,JanusGraph采用 属性图 进行建模。...架构图如下: ps:避免篇幅过大,架构相关的信息会在后续的博文详细说明 如何使用 作为一个数据库系统,它是要用来为应用程序存储数据用的,那么应用程序应该如何使用JanusGraph来为自己存储数据呢

    2.5K40

    重学数据结构和算法(一)之复杂度、数组、链表、栈、队列、图

    String item) { // 数组空间不够了,直接返回false,栈失败。...在栈和栈过程中,只需要一两个临时变量存储空间,所以空间复杂度是 O(1)。 注意,这里存储数据需要一个大小为 n 的数组,并不是说空间复杂度就是 O(n)。...空间复杂度分析是不是很简单? 时间复杂度也不难。不管是顺序栈还是链式栈,栈、栈只涉及栈顶个别数据的操作,所以时间复杂度都是 O(1)。...每进入一个函数,就会将临时变量作为一个栈帧栈,当被调用函数执行完成,返回之后,将这个函数对应的栈帧栈。...顶点度,表示有多少条边指向这个顶点顶点度,表示有多少条边是以这个顶点为起点指向其他顶点。对应到微博的例子,表示有多少粉丝,表示关注了多少人。

    52910

    数据结构与算法 | 图(Graph)

    每类图可能还会有其独特的一些特征描述,比如有向图(Directed Graph)里面,以某顶点作为开始的边的数量称为这个顶点度(Indegree),以某个顶点作为结束的边的数量称为这个顶点度(Outdegree...对于无权图,通常使用数组或链表来存储相邻节点的标识符。而对于带权图,列表中可能还包含了边的权重信息。 基本应用示例(Basic Examples) Leetcode 997....只有一个人同时满足属性 1 和属性 2 。 给你一个数组 trust ,其中 trusti = ai, bi 表示编号为 ai 的人信任编号为 bi 的人。...这样题目转换为:判断一个n个顶点的有向图中 是否存在出度为0,度为n-1的顶点 ;存在返回顶点编号,不存在返回 -1。...现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到一条最多经过 k 站中转的路线,使得 src 到 dst 的 价格最便宜 ,并返回该价格。

    44191

    图详解第二篇:图的遍历(广度优先+深度优先)

    给定一个图G和其中任意一个顶点v0,v0发,沿着图中各边访问图中的所有顶点,且每个顶点仅被遍历一次。...其实跟二叉树的层序遍历类似,借助一个队列就可以搞定。 比如就以这个图为例: 顶点A开始,那就让A先入队列。...那如何标记已经遍历过的顶点呢? 每个顶点不是都映射一个下标嘛。 所以我们就可以开一个数组,默认都给false,遍历一个结点,就把对应下标位置的值改为true,表示这个结点已经被遍历过了。...如果打印之后标记的话,B队列之后其实还会把C带到队列里面 因为B队列,然后打印B,此时A已经打印过了被标记了,但是C还没有队列打印,所以C还没有被标记,所以B打印之后与B直接相连的顶点ACE...那递归里面的逻辑呢,很简单: 先访问当前顶点,然后找一个没访问过的邻接顶点,继续递归往深走,一直走到走不动了自动就向上返回写好了 测试 我们来测试一下: 还用上面那个图吧 运行一下

    44610

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

    阅读下面的文章,G Data的Florian Hockmann和IBM的Jason Plurad那里了解JanusGraph是如何与Neo4j进行比较的,为什么应该关注TinkerPop 4,并获得关于图形数据建模的专家提示...TinkerPop使您能够使用相同的图结构和Gremlin图遍历语言,使用相同的代码来生成多个图数据库。...当我开始使用泰坦的时候——基本上和janusgraph一样——我对Cassandra和Elasticsearch一无所知,但我仍然能够通过这些后端快速地安装和部署泰坦。...对于图模型,另一个需要考虑的问题是,某个东西是否应该是一个顶点上的属性,还是它自己连接到另一个带边的顶点上的另一个顶点。...我通常的方法是决定我是否希望能够搜索具有相同属性值的其他顶点,在这种情况下,我将它建模为自己的顶点,用边将它连接到所有具有该值的顶点。否则,它通常只能是一个顶点属性。 JP:图形建模需要时间。

    2.5K20

    图数据库调研

    Gremlin:数据以属性图的形式存在,属性仍然在表中,但是联接关系是直接以链接(比如指针)的形式存在的。查询的本质是图遍历,擅长解决求图的直径、点到点之间的路径。...各自的特点: Cypher:只能在 Neo4j 上使用,但是社区版的Neo4j 只能跑在单机上,用 Gremlin 和 SPARQL 可以很容易地某个数据库转到另外一个,但Cypher就不要想了。...但是有一个比较大的问题是各家对 Gremlin 的实现不一,自动生成代码比较困难,实现的效率也不一样,让人比较头疼。 SPARQL:W3C 标准,查询语句比较简单,自动生成语义查询也相对容易。...Neo4j Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性顶点也称作节点,边也称作关系...HugeGraph 的存储层包括图数据(顶点、边和属性等)存储、索引数据存储和 Schema 元数据存储。

    6.6K30
    领券