问题标签 [pyorient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
297 浏览

sql - OrientDB:使用 gremlin 进行文本搜索

我正在使用 OrientDB 和随附的 gremlin 控制台。

我正在尝试在文本属性中搜索模式。我有带有 ebodyText 属性的电子邮件顶点。问题是使用类似 SQL 的命令和 Gremlin 语言查询的结果是完全不同的。

如果我使用类似 SQL 的查询,例如:

select count(*) from Email where eBodyText like '%Syria%'

它返回 24。

但是,如果我在 gremlin 控制台中查询,例如:

g.V.has('eBodyText').filter{it.eBodyText.matches('.*Syria.*')}.count()

它不返回任何内容。

使用不同关键字“memo”的相同查询由 SQL 返回 161,但由 gremlin 返回 20。

为什么会这样?gremlin 命令的语法有问题吗?有没有更好的方法在 gremlin 中搜索文本?

我想在使用 python 驱动程序'pyorient'的上传脚本中设置属性可能存在问题。 用于上传数据集的 Python 脚本

谢谢你的帮助。

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
367 浏览

python - 如何使用pyorient在orientdb中存储和检索二进制数据?

我试图遵循 pyorient 的 github 自述文件中给出的示例。我尝试使用 插入二进制字段client.record_create并使用client.record_load.

如您所见,检索到的二进制字段的值为 None。pyorient 支持插入原始字节吗?如果没有,是否有一些解决方法?

0 投票
1 回答
163 浏览

orientdb - 如何优化pyorient将十万顶点半百万边的大图导入Orientdb的过程?

我需要通过 pyorient 将具有十万个顶点和一百万条边的图导入 Orientdb。

db.command 一一

首先,我只是使用 db.command("create vertex V set a=1") 将所有顶点和边一一插入。

但是我大概需要两个小时。

所以我想找到一种方法来优化这个过程。

大量插入?

然后我发现 Orientdb 支持Massive Insert,但不幸的是 pyorient 的作者在一个问题中大量插入:没有事务?提到过

在 bynary 协议中(当然在 pyorient 中)没有大量的插入意图。

SQL 批处理

Pyorient 支持sql 批处理。也许这是一个机会!

我只是将所有插入命令放在一起并通过 db.batch() 运行它。

我以 5000 个顶点和 20000 个边为例

  • sql批处理

    /li>
  • 原来的

    /li>

..似乎sql批处理花费了更多时间。

所以我想知道是否有办法做到这一点。

谢谢。

0 投票
2 回答
530 浏览

python-3.x - 如何使用 PyOrient 找出 OrientDB 上是否存在一个类?

如何找出一个类是否存在;这允许防止“当前数据库中已存在类 x”错误消息?

我看过下面的Question,它用 Java 和 SQL 给出了答案。我正在寻找 Python 等价物。

0 投票
2 回答
518 浏览

python-3.x - 查找无模式顶点类的所有属性

我有一个类 Node extends V。我将实例添加到 Node 并提供了一些文档类型信息。我想查询OrientDB数据库并从Node返回一些信息;要以格式化的方式显示它,我想要一个所有可能字段名称的列表(在我的应用程序中,当前有 115 个字段名称,其中只有一个是用作索引的属性)

要在pyorient中做到这一点,到目前为止我发现的唯一解决方案是(客户端是数据库句柄的名称):

我通过反复试验发现了很多。它不是很有效或优雅。当然,必须有一种方法可以让数据库返回一个类或任何其他文档类型对象的所有可能字段的列表。有没有一种简单的方法可以通过 pyorient 或 SQL 命令来做到这一点?

0 投票
1 回答
1708 浏览

python - 从 Python 访问 OrientDB

我想将超过 100 万条记录的 MySQL 数据库转换为图形数据库,因为它是高度链接的网络类型数据。Neo4J 的免费版本有一些我认为可能会遇到的限制,所以我安装了 OrientDB (Community 2.2.0)(在 Ubuntu Server 16.04 上)并让它工作。现在我需要从 Python (3.5.1+) 访问它,所以我正在尝试 pyorient (1.5.2)。(我尝试了 TinkerPop,因为我最终想使用 Gremlin,但无法让 gremlin 控制台与 OrientDB 对话。)

以下简单的 Python 代码,用于连接到 OrientDB 中的一个测试图:

给出一个奇怪的错误:

有谁知道那是什么或我该如何解决?我真的应该改用 TinkerPop 吗?如果是这样,我将发布一个关于我与之斗争的单独问题。

0 投票
1 回答
263 浏览

orientdb - 使用占位符参数化 OrientDB 中的查询

我正在使用 pyorient 并且想要参数化查询——我假设 command() 允许使用占位符,但找不到任何文档。特别是,我想根据 postgres 的 %(name)s 构造使用 dict() args,但也可以使元组/列表也能正常工作。

0 投票
1 回答
386 浏览

python - pyorient can't connect to orientdb docker

I'm using pyorient 1.5.4 and the docker for orientdb 2.2.5

If I use the browser to connect to the database, the server is clearly running. If I connect with pyorient, I get an error.

Here is the code I use to connect to the database:

I get the following error:

I created the docker container with the following command:

The server is running because connecting via the browser works fine.

It seems like the necessary ports are open so why does pyorient thinks the database is closed?

0 投票
2 回答
687 浏览

python - 如何使用 PyOrient 在 OrientDB 中创建函数(存储过程)?

我正在尝试使用 PyOrient 创建一个 OrientDB 图形数据库,但我找不到足够的文档来让函数正常工作。我已经能够创建一个用于集群的函数record_createofunction但是虽然它没有崩溃,但它似乎也不起作用。这是我的代码:

做所有的事情都很顺利select addURL,但做的select * from URL只是超时。大概是因为(正如我通过在 Studio 中检查数据库发现的那样)仍然没有URL顶点。虽然为什么应该超时而不是返回一个空列表或给出有用的错误消息,但我不确定。

我做错了什么,有没有更简单的方法通过 PyOrient 创建函数?

我不想只在 Studio 中编写函数,因为我正在制作原型并希望它们从 Python 代码中编写出来,而不是每次我丢弃损坏的实验图时都会丢失!

我主要使用OrientDB wiki 页面来了解 OrientDB 函数,而PyOrient github 页面几乎是我唯一的文档来源。


编辑:我已经能够在 SQL 中创建一个工作函数(参见下面我自己的答案),但我仍然无法创建一个创建顶点的工作 Javascript 函数。我目前最好的尝试是:

它在从 PyOrient 调用时运行而不会崩溃,但实际上并没有创建任何顶点。但如果我从 Studio 调用它,它可以工作!?!我不知道是怎么回事。

0 投票
1 回答
142 浏览

docker - orientdb docker 无法连接或删除“内存”类型的数据库

我试图删除名为 'unit_tests' 的 ' memory ' 类型的 orientdb 数据库,我收到以下错误:

我运行一个使用以下命令创建的 docker 容器:

如果我尝试通过浏览器界面、console.sh 或 pyorient 删除数据库,则会收到错误消息。

当我连接到数据库时,实际上发生了错误。

是否可以在 orientdb 的 docker 中使用“内存”类型的数据库进行单元测试?

我肯定错过了什么。