Gremlin查询语言用法示例

news2024/11/17 10:23:42

Gremlin 的基本用法

Gremlin Query Language 的基本用法主要包括构建图遍历的查询语句,这些语句由一系列的步骤组成,用于从图形中检索数据和修改数据。以下是一些基本用法的示例和解释:

  1. 选择所有顶点
    使用g.V()可以选择图中的所有顶点。这里的g是一个图的引用,而V()是一个步骤,用于选择顶点。

  2. 获取顶点属性
    通过values()步骤可以获取顶点的属性值。例如,g.V().values('name')会获取所有顶点的 ‘name’ 属性值。

  3. 遍历关系
    Gremlin 允许你遍历图中的关系(边)。例如,g.V().out()会获取所有顶点指向的出边对应的顶点。

  4. 过滤结果
    使用has()步骤可以过滤顶点或边。例如,g.V().has('name', 'Alice')会选择所有 ‘name’ 属性为 ‘Alice’ 的顶点。

  5. 排序结果
    使用order()步骤可以对结果进行排序。例如,g.V().order().by('age', desc)会根据 ‘age’ 属性值降序排序所有顶点。

  6. 限制结果数量
    range()步骤可以用来限制返回结果的数量。例如,g.V().range(0, 5)会返回前五个顶点。

  7. 添加和修改顶点及边
    Gremlin 也支持创建和修改图中的实体。例如,g.addV('person').property('name', 'Bob')会添加一个名为 ‘Bob’ 的新顶点。

  8. 删除顶点及边
    使用drop()步骤可以删除顶点或边。例如,g.V().has('name', 'Alice').drop()会删除所有 ‘name’ 属性为 ‘Alice’ 的顶点。

在构建查询时,这些步骤可以组合在一起形成更复杂的查询。Gremlin 的流式执行特性使得查询语句非常灵活,可以轻松地满足各种查询需求。

如何快速练习 - Gremlify

要练习Gremlin 语言, 首选需要有一个Graph Db , 然后还需要有Client 端进行查询,这里提供一个在线练习的网站:
https://gremlify.com/。

Gremlify是一个用于构建和测试图数据库查询的在线平台。它支持 Apache TinkerPop Gremlin,这是一种用于遍历图数据的图遍历语言。Gremlify 提供了一个用户友好的界面,使开发者能够轻松地构建、测试和优化他们的 Gremlin 查询。

在 Gremlify 上,可以:

  1. 构建查询:使用直观的界面来构建 Gremlin 查询。无需编写复杂的代码,只需通过点击和选择操作即可创建查询。
  2. 实时测试:连接到你的图数据库实例(如 Neo4j、OrientDB、JanusGraph 等),并实时测试查询的结果。这有助于快速验证查询的正确性和性能。
  3. 优化建议:Gremlify 提供了优化建议,帮助你改进查询的性能。这些建议基于查询的结构和图数据库的特性。
  4. 分享和协作:你可以将查询分享给其他开发者,以便他们查看、修改或优化。这对于团队协作和知识共享非常有用。
  5. 学习资源:Gremlify 还提供了丰富的学习资源,包括教程、示例和文档,帮助你更好地理解和使用 Gremlin 语言。

总的来说,Gremlify 是一个强大的工具,可以简化图数据库查询的构建、测试和优化过程,提高开发者的效率和代码质量。

Gremlify 的基本使用步骤

  1. 在浏览器打开 https://gremlify.com/, 打开后的页面如下:

在这里插入图片描述

  1. 点击左边导航栏的"Graph Templates" 选择一个图数据

在这里插入图片描述

3.这里选择飞机路线的图数据

在这里插入图片描述

  1. 选择之后在最右边就显示了一个图。

在这里插入图片描述

图包括顶点和边。这里使用不同的ID进行标示。

  1. 在中间查询输入查询语句之后点击上方的"Run" 按钮运行。
    在这里插入图片描述

这里 g.V() 是查询所有的顶点, 上面的顶点有5个,每个顶点有 id 和 label 两个属性。

  1. 查询示例
  • g.V("1193").out() : 查询右上方 1193 顶点执行的顶点, 这里是1196 和1205, 返回结果:
[
  {
    "id": 1196,
    "label": "airport"
  },
  {
    "id": 1205,
    "label": "airport"
  }
]
  • g.V().id() 获取所有ID
  • g.V().label() 获取所有label

这里示例的每个节点除了 id 和 label 之外, 还有一个名为code 的属性。
在这里插入图片描述

上面的查询并没有将 code 的值查询出来, 如何能查询出来呢?

  • g.V().values("属性名"), 获取id 和label 之外的某个属性的值
  • g.V().valueMap(true) ,返回所有顶点的所有属性名和属性值:
    true参数表示包含顶点的所有属性,包括那些值为空的属性。 返回结果类似:
[
  {
    "id": 1277,
    "label": "airport",
    "code": [
      "AUS"
    ]
  },
  {
    "id": 1280,
    "label": "airport",
    "code": [
      "DFW"
    ]
  },
  {
    "id": 1283,
    "label": "airport",
    "code": [
      "LAX"
    ]
  },
  {
    "id": 1286,
    "label": "airport",
    "code": [
      "JFK"
    ]
  },
  {
    "id": 1289,
    "label": "airport",
    "code": [
      "ATL"
    ]
  }
]
  • g.V().valueMap('propertyName1', 'propertyName2') , 返回指定属性名
  • g.V().has("code", "AUS"):查询那些具有属性code且其值为"AUS"的所有顶点(vertices)

注意事项

  • idlabel都是图元素的内置属性,但它们不是通过values()步骤直接访问的。相反,应该使用id()label()步骤来获取这些值。

参考

  • https://gremlify.com/
  • https://tinkerpop.apache.org/index.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

包叔推荐12代i3-独显组装电脑主机配置清单

去年Intel第十代i5-依然是主流热选机型。 今年,随着i3-的价格优势越来越大,已经成功取代了i5-。 今天包叔推荐几套12代i3-独立显卡组装电脑主机配置。 列表:一组核心显示配置,其余三组均为独立显示配置。 适合主机预算在2000元至3…

Spring Cloud Gateway教程

1 微服务网关概述 Spring Cloud Gateway是在 Spring 生态系统之上构建的API网关服务,旨在为微服务架构应用提供一种简单有效的统一的API路由管理方式。 Spring Cloud Gateway主要功能: 反向代理认证鉴权流量控制熔断日志监控 2 Spring Cloud Gateway三…

搭建一个简单的网络结构(Pytorch实现二分类)

搭建一个简单的网络结构(Pytorch实现二分类) 搭建一个神经网络并进行训练的话,大致需要分为三步: 第一步是数据的处理,将数据整理成输入网络结构中合适的格式第二步是网络的搭建,包括每层网络的结构和前向…

Neo4j桌面版导入CVS文件

之后会出来一个提示框,而且会跳出相关文件夹: 然后我们将CSV文件放在此目录下: 我们的relation.csv是这样的 参见: NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件_neo4j desktop使用-CSDN博客

数学建模体育建模和经济建模国防科大版

目录 6.体育中的数学建模 7.经济学问题中的数学建模 7.1.实物交换模型 7.2.边际效应 7.3.最佳消费选择模型 6.体育中的数学建模 体育科学的研究中,也有大量的数学建模问题,例如:棒球的最佳击球点问题、滑板滑雪赛道的设计、越野自行车比…

基于springboot+vue的旅游推荐系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——Web开发介绍

万字长文爆肝黑马程序员2023最新版JavaWeb教程。这套教程打破常规,不再局限于过时的老套JavaWeb技术,而是与时俱进,运用的都是企业中流行的前沿技术。笔者认真跟着这个教程,再一次认真学习一遍JavaWeb教程,温故而知新&…

利用免费 GPU 部署体验大型语言模型推理框架 vLLM

vLLM简介 vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。 vLLM 之所以快速,是因为: 最先进的服务吞吐量 通过 PagedAttention 高效管理注意力键和值内存 连续批处理传入请求 使用 CUDA/HIP 图快速模型执行 量…

输入N个整数,输出这个整数两两组合且不重复的所有二元组,要求从小到大输出并且用括号的形式。

输入描述: 第一行输入一个整数N&#xff0c;N<30。 第二行输入N个整数。 输出描述: 按题意输出。 输入样例#: 3 1 2 3 输出样例#: (1,2) (1,3) (2,1) (2,3) (3,1) (3,2) #include <stdio.h>void quicksort(int s[],int min,int max); //快速排序int partitio…

那些王道书里的题目-----计算机网络篇

注&#xff1a;仅记录个人认为有启发的题目 p155 34.下列四个地址块中&#xff0c;与地址块 172.16.166.192/26 不重叠&#xff0c;且与172.16.166.192/26聚合后的地址块不会引入多余地址的是&#xff08;&#xff09; A.172.16.166.192/27 B.172.16.166.128/26 …

53 initrd/initramfs 相关

前言 呵呵 这里主要是 探究一下 根文件系统 相关的东西 以及 附加了一些 系统启动的相关信息 计算机启动 硬件重置寄存器 设置初始化数据 计算机访问 0xffff0, 执行 bios 的代码, bios 选择启动设备, 然后执行 启动设备 boolloader 的代码 bootloader 将 boot.img 加载…

玩具蛇(蓝桥杯)

文章目录 玩具蛇题目描述答案&#xff1a;552dfs 玩具蛇 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一条玩具蛇&#xff0c;一共有 16 节&#xff0c;上面标着数字 1 至 16。每一节都是一个正方形的形…

GCC制作静态库详解

目录 前言 一.静态动态库区别 二.静态库制作 2.1 库文件命名 三.静态库文件制作 3.1 静态库制作 3.1.1 先获得.o文件 3.1.2 生成静态库文件 3.1.3 删除不必要文件 3.1.4 使用静态库 3.1.5 使用运行运行 前言 带大家快速入门&#xff0c;学会制作静态库。本文详细介绍在Linux系统…

“玩转文本魔法师:Python编程轻松变格式“

Hey小伙伴们&#xff0c;今天我们要一起打造一个文本转换器&#xff0c;就像神奇的魔法棒&#xff0c;能把普通的文字变成各种奇妙的格式&#xff01;想象一下&#xff0c;你的输入是&#xff1a;“Hello, World!”&#xff0c;输出可以是Markdown、HTML或者粗体、斜体的文字&a…

大语言模型(Large Language Model,LLM)简介

1. 什么是大语言模型 它是一种基于深度学习的人工智能模型&#xff0c;它从大量来自书籍、文章、网页和图像等来源的数据中学习&#xff0c;以发现语言模式和规则&#xff0c;如处理和生成自然语言文本。通常&#xff0c;大语言模型含数百亿&#xff08;或更多&#xff09;参数…

外包干了4年,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

GJB5000软件配置管理计划模板

1 范围 1.1 标识 本条应描述本文档所适用的系统和软件的完整标识&#xff0c;适用时&#xff0c;包括其标识号、名称、缩略名、版本号和发布号。 1.2 系统概述 本条应概述本文档所适用的系统和软件的用途。它还应描述软件的一般特性&#xff1b;概述软件开发、运行和维护…

【 Mysql8.0 忘记登录密码 可以试试 】

** Mysql8.0 忘记登录密码 可以试试 ** 2024-3-21 段子手168 1、首先停止 mysql 服务 &#xff0c;WIN R 打开运行&#xff0c;输入 services.msc 回车打开服务&#xff0c;找到 mysql 服务&#xff0c;停止。 然后 WIN R 打开运行&#xff0c;输入 CMD 打开控制台终端输…

深度学习绘制热力图heatmap、使模型具有可解释性

思路 获取想要解释的那一层的特征图&#xff0c;然后根据特征图梯度计算出权重值&#xff0c;加在原图上面。 Demo 加上类激活(cam) 可以看到&#xff0c;cam将模型认为有利于分类的特征标注了出来。 下面以ResNet50为例: Trick: 使用 for i in model._modules.items():可以…

springboot做自定义校验注解

目录 自定义校验注解的实现 注意&#xff1a; 首先&#xff0c;我们需要自定义一个校验注解&#xff1a; 注解含义&#xff1a; Target({ElementType.FIELD}) Retention(RetentionPolicy.RUNTIME) Constraint(validatedBy PhoneValidator.class) 校验注解逻辑实现类&a…