Gremlin-Python 连接到现有的 JanusGraph

2024-06-01

我已经使用 gremlin 控制台创建了一个图表

gremlin> ConfiguredGraphFactory.graphNames
==>MYGRAPH
gremlin> ConfiguredGraphFactory.getConfiguration('MYGRAPH')
==>storage.backend=cql
==>graph.graphname=MYGRAPH
==>storage.hostname=127.0.0.1
==>Template_Configuration=false
gremlin> g.V().properties()
==>vp[name->SFO]
==>vp[country->USA]
==>vp[name->ALD]
==>vp[country->IND]
==>vp[name->BLR]
==>vp[country->IND]
gremlin>

我想使用 gremlin-python 与 MYGRAPH 连接。 有人可以告诉我如何使用 gremlin-python 访问名为“MYGRAPH”的图。

提前致谢...


首先,您需要为 JanusGraph 安装一些 jar 文件来处理 gremlin-python 脚本:

./bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python 3.2.9

请注意,您安装的 gremlin-python 版本必须与 JanusGraph 兼容的 Tinkerpop 版本相匹配。您可以在 JanusGraph 上找到兼容性信息发布页面 https://github.com/JanusGraph/janusgraph/releases。例如,JanusGraph 0.2.2 与 Tinkerpop 3.2.9 兼容。

接下来,您需要使用ConfiguredGraphFactory 启动JanusGraph 服务器。你只需要使用该文件conf/gremlin-server/gremlin-server-configuration.yaml从分布。

bin/gremlin-server.sh conf/gremlin-server/gremlin-server-configuration.yaml

该文件与传统的conf/gremlin-server/gremlin-server.yaml在那几行中

graphManager: org.janusgraph.graphdb.management.JanusGraphManager
graphs: {
  ConfigurationManagementGraph: conf/janusgraph-cql-configurationgraph.properties
}

然后我们需要加载图表MYGRAPH在服务器的初始化脚本期间。请创建一个初始化脚本scripts/init.groovy。您可以在此处加载任意数量的不同图表。

def globals = [:]
myGraph = ConfiguredGraphFactory.open("MYGRAPH")
globals << [myGraphTraversal : myGraph.traversal()]

确保在 gremlin 服务器启动时执行此脚本conf/gremlin-server/gremlin-server-configuration.yaml

scriptEngines: {
  gremlin-groovy: {
    imports: [java.lang.Math],
    staticImports: [java.lang.Math.PI],
    scripts: [scripts/init.groovy]}}

最后,在您的 Python 项目中,安装与您的 JanusGraph 版本的 Tinkerpop 版本相匹配的 gremlin-python 包。对于 JanusGraph 0.2.2,这是版本 3.2.9。

pip install gremlin-python==3.2.9

启动 Python shell 并开始编码:

>>> from gremlin_python import statics
>>> from gremlin_python.structure.graph import Graph
>>> from gremlin_python.process.graph_traversal import __
>>> from gremlin_python.process.strategies import *
>>> from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

>>> graph = Graph()
>>> myGraphTraversal = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','myGraphTraversal'))
>>> myGraphTraversal.V().count()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gremlin-Python 连接到现有的 JanusGraph 的相关文章

随机推荐

  • 使用 xpath 查找具有特定值的 td

    考虑以下 html 片段 table tr td One td td 1 td td Two td td 2 td tr table 我想使用 xpath 根据第一个 td 的值 One 或 Two 查找第二个 td 1 或 2 例如 ta
  • 将 PHP mcrypt 与 Rijndael/AES 结合使用

    我正在尝试使用 php 中的 mcrypt 和密码 Rijndael 加密一些文本消息 但我不确定 MCRYPT MODE modename 根据 PHP 手册 这些可用 ecb cbc cfb ofb nofb 或 stream 但我读到
  • 分布式1.21.8需要msgpack,未安装

    我在尝试安装情节时遇到问题 我继续在 Debian 9 上使用命令行升级 anaconda 并收到错误消息 distributed 1 21 0 需要 msgpack 未安装 然后我尝试了一个conda install mspack 那么一
  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • Xcode 5 中的 iOS7 故事板不断垂直增长

    在 Xcode 5 中单击 iPad Storyboard 后 它询问我是否要升级到 iOS7 Storyboard 当警报出现在屏幕上时 它会不断垂直增长视图控制器 选择 升级 后 增长 就会停止 但那时损坏已经完成 视图控制器的大小也增
  • PHP 如果不存在,则从字符串中删除 ','

    我正在运行这段代码 stmt pdo conn gt prepare SELECT from admin where support emails support emails and logged logged and disabled
  • 如何在 Perforce“仓库”之间移动文件夹

    前几天意外删除了我的 Svn 存储库后 我想尝试其他东西 因此我选择 Perforce 作为我当前的版本控制工具测试场 进展顺利 我很喜欢在 Perforce 中看到的东西 这是我的问题 我已将文件提交到 Perforce 服务器 然后使用
  • 将 pandas 数据帧压缩到新的数据帧中

    我有 2 个数据框 df A country codes 0 4 1 8 2 12 3 16 4 24 and df B continent codes 0 4 1 3 2 5 3 6 4 5 两个数据帧具有相同的长度 但没有公共列 我想将
  • 来自大型数据帧的共现

    我有一个数据框 其中包含有关每个用户访问过哪些城市的信息 df visited lt data frame user c john john claire claire doe doe city c Antananarivo Barcelo
  • 不使用 item.Document.FullName 获取 ProjectItem 路径

    我有一个 Visual Studio 插件项目 我必须利用这些文件的绝对 或相对 路径来迭代当前项目的项目 The item Document FullName有效 但仅适用于当前打开的文件 有没有其他方法可以访问此信息DTE object
  • 纠正我在 mvc 中的 url 路由

    在我的 global asax 文件中 我有一个注册路由 routes MapRoute Default Route name controller action id URL with parameters new controller
  • 无法从用法推断方法的类型参数

    也许我工作过度了 但这没有编译 CS0411 为什么 interface ISignatur
  • 如何使用foreach从父组件调用子组件方法

    我已经看到了如何使用父组件调用子组件方法的示例 ref属性 但是当我尝试将它与foreach循环中 只有最后渲染的组件的方法被调用 而不是全部 以下是我的组件的示例 父组件
  • 确定使用 -webkit-line-clamp 表示多行省略号时是否显示省略号

    我们使用多行 CSS 省略号https css tricks com line clampin https css tricks com line clampin 我们想要检测省略号是否正在显示 并根据省略号是否正在显示来决定显示工具提示
  • 编译freetype

    当尝试在 Ubuntu Linux 86 64 上编译 freetype 2 6 1 时 我在配置步骤中收到以下消息 usr local include harfbuzz hb common h 316 29 note in expansi
  • 如何创建 highcharter 事件函数以在 Shiny R 中创建“下拉函数”

    我正在建造一个shiny应用程序 我想要完成的事情之一是创建一个下拉菜单 我想将劳动力变量绘制为不同级别的年份变量的函数 请参阅下面的示例数据框 year level 2 level 3 labour 1 2013 10 101 1 2 2
  • 有没有办法让 ValidationSummary 与客户端验证器一起使用?

    NET ValidationSummary 控件聚合来自回发时触发的验证器的错误消息 有没有某种方法可以让它也显示来自客户端验证器的错误消息 我正在解决的问题是 在长页面上 可能会单击提交按钮 导致某些客户端验证器失败 但永远不会看到错误消
  • 如何在 C 中生成另一个进程?

    如何使用 C 运行外部程序并向其传递命令行参数 如果必须使用操作系统 API 请包含适用于 Windows Mac 和 Linux 的解决方案 这实际上取决于您想要做什么 确切地说 因为它是 依赖于操作系统 不太清楚你想做什么 尽管如此 我
  • WPF 对 DataGrid 内的 TextBlock 进行全局样式设置

    我遇到了一个非常奇怪的问题 我正在尝试将全局样式应用于一个中的多个控件DataGrid 它们中的大多数完全按照我的预期工作 然而 对于TextBlock永远不会被应用 样式为ComboBox TextBox Label 和其他几个都被应用到
  • Gremlin-Python 连接到现有的 JanusGraph

    我已经使用 gremlin 控制台创建了一个图表 gremlin gt ConfiguredGraphFactory graphNames gt MYGRAPH gremlin gt ConfiguredGraphFactory getCo