问题标签 [orientdb-2.1]

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 回答
111 浏览

json - OrientDB 在封装字段中使用 LIKE

我有一个名为 的 OrientDB 表CalculationFunctionGroup,其中有一个名为 的字段functions

该字段具有如下 JSON 内容:

[{"@type":"d","@version":0,"@class":"CalculationFunction","name":"AR_0015_0280","code":"//AR_0015_0280 OTTIMIZZATA / FORMATTATA\nvar worka01 = anagPay(\"AR_0015_0280\", -1);\nreturn worka01;","language":"Javascript"}]

我想code在 JSON 的元素上提取满足 LIKE 条件的行。

我试过这个查询:

但是提取的行数为零!

0 投票
1 回答
129 浏览

graph - 在 OrientDB 中加载随机顶点

我需要加载随机顶点或边缘记录。

有什么办法可以很快做到这一点?

询问

很慢。

谢谢

0 投票
1 回答
155 浏览

orientdb - 在控制台中运行 SQL 脚本时,OrientDB 2.1.9 崩溃并出现 OStorageException EOFException

我一直在使用我的 SQL 数据库初始化脚本,但最近似乎数据库在执行过程中崩溃了,我不知道为什么,但这里有一些细节:

  • 我在 Ubuntu 14 Trusty x64 上运行 OrientDB(通过 Vagrant)
  • 当脚本尝试创建 UNIQUE_HASH_INDEX 时,它似乎总是崩溃,但并不总是在相同的 UNIQUE_HASH_INDEX 指令处崩溃

该脚本创建了很多顶点和边,但例如,它会在此处崩溃(参见 UNIQUE_HASH_INDEX 行):

数据库完全崩溃并出现以下错误:

创建索引...错误:com.orientechnologies.orient.core.exception.OStorageException:执行命令时出错:sql.create INDEX Channel.uq_channelId ON Channel(channelId) UNIQUE_HASH_INDEX

错误:java.io.EOFException

查看日志文件,我得到的唯一提示是最后两行:

我该如何解决这个问题,或者至少获得关于是什么导致数据库崩溃的更好提示?

我还使用 OrientDB 2.1.6 进行了测试,因为我最初运行的是旧版本。同样的问题。

0 投票
3 回答
1141 浏览

orientdb - 在 OrientDb 中查找和删除重复的边

考虑我们有 Vertex User 和 Edge FriendsWith。FriendsWith 可以在两个方向上进出(通常是出或在两个用户之间)。

重复是指从一个用户到另一个用户的外出或进入不止一次(外出和进入一起不被视为重复)

有没有办法找到重复的边缘并删除它们?

更新添加了说明问题的图片

在此处输入图像描述

谢谢你。

0 投票
1 回答
137 浏览

orientdb - Orientdb 查询和方案模式以加快读取阶段

我在一个相当大的数据存储上遇到了一些性能问题。为了优化插入阶段,我们创建了一个文档存储而不是一个图形,实际上边缘创建性能太慢了。基本上现在我们有一个 A 类(大约 30M 文档),带有一个到 B 类(大约 500 个文档)的链接(比如字段 fieldL)。查询结构如下:

选择 A where field1='field1value' and field2='field2value' and field3>0 ... and fieldL in (select from B where ...)

我发现的第一个问题是:我在 where 条件下的 n 个属性上创建了 n 个索引,但是解释命令显示我 orient 只使用一个... https://github.com/orientechnologies/orientdb /issues/3626 所以我创建了一个复合索引,如果我执行一个只涉及索引的查询,比如说

select from A where field1='field1value' and field2='field2value' and field3>0 结果真的很快

问题是关于查询的第二部分,涉及 fieldL 和链接。我尝试过使用 [#rid,...] 语法,但它似乎表现不佳。

我还尝试使用不同的方法更改架构:B 类具有多个指向 A 类的链接,使用不同的查询模式(比如包含链接 fieldL1 的字段):

select * from (select expand(fieldL1) from B where ...) where field1='field1value' and field2='field2value' and field3>0

在这种情况下,子查询执行数据的某种分区,但不幸的是我们丢失了结果集上的索引,所以我们在第二个 where 子句(field1='field1value' and field2='field2value' and field3 >0)。

我的问题是:是否存在更好的查询模式来更快地执行此类查询?

非常感谢。

顺便说一句,在性能调整期间,对查询中涉及的文档进行计数似乎真的很尴尬。( https://github.com/orientechnologies/orientdb/issues/3462 )

0 投票
1 回答
156 浏览

neo4j - 为 OrientDB 重写 neo4j 查询

我正在测试性能 neo4j 与 OrientDB 图数据库。我正在使用 neo4j 网站上提供的 MoiveDatabase 数据集。我已按照说明进行操作:

这是classes输出,所以我猜导入没问题。

但是当我尝试执行这个查询时: SELECT in() FROM Movie LIMIT 10或者SELEC out() FROM Person LIMIT 10我没有得到任何记录。这是为什么?

我正在尝试重写 co-actors 查询:

和“co-co-actors”查询:

我应该用TRAVERSE这个吗?

0 投票
0 回答
79 浏览

orientdb - OSBTreeException:密钥大小超过允许,操作被取消

我正在使用 OrientDB 2.1.9,尝试将数据批量加载到图形数据库中。数据库包含页面(顶点)和页面之间的链接(边)。

我已经为页面顶点定义了一个顶点类型。因为我想按标题搜索页面,所以我还在 title 属性上创建了一个索引。

我使用单个调用为页面添加顶点并设置其标题属性。

在运行批量导入时,我遇到以下异常:

我不明白为什么会发生异常。关键值是例如“Drie (sport)”,它与 10Kb 相差无几。

有什么建议么?

谢谢!

0 投票
1 回答
168 浏览

orientdb-2.1 - OrientDB Query Result set of vertices with a empty collection of edges, vertices

这可能是一个简单的问题,但我很困惑,请帮助......

我正在使用 OrientDB 2.1.9,并且正在尝试使用 VehicleHistoryGraph 数据库。在 Studio 的浏览模式中,将限制设置为仅 9 条记录。现在我输入这个简单的查询

select out() from Person

我得到的结果集是 9 条记录,但只有两条购买了车辆。其余的显示为空集合 []。这不好,我很困惑。我希望只取回这两个带有边集合的顶点!

我如何找回这两个买东西的人?我还注意到选择中有这个展开运算符。在那种情况下这有用吗,你能举个例子吗?

0 投票
0 回答
71 浏览

graph - 提高 in() out() 和 both() 的性能

考虑我们有 Vertex User、Post 和 Edge FriendsWith、HasPost。FriendsWith 可以在两个方向上进出(通常是出或在两个用户之间)。用户是 Post 的所有者。

我们有 60 万用户和 7500 万个帖子

我用来获取用户朋友以下查询:

SELECT both('FriendsWith') FROM #12:1

并获得朋友的帖子

SELECT both('FriendsWith').out('HasPost') FROM #12:1 LIMIT 50

但是如果用户有很多朋友(~1000),性能不是最好的(约 400 毫秒获得朋友和 1-5 秒获得帖子)

有什么办法可以改善这个查询吗?

谢谢你。

更新

select from (select expand(both('FriendsWith').out('HasPost')) from #12:1) LIMIT 50 找到 50 个项目。查询在 7.08 秒内执行。

0 投票
1 回答
145 浏览

orientdb - 使用“joins”查询东方数据库

我最近开始研究来自关系背景(Oracle RDBMS)的 OrientDB,我正在努力查询我加载到 OrientDB 中的一些数据。

我有 2 节课:

我通过首先在“股票”类上运行 UPSERT 来加载一些数据,然后在一天内多次添加价格:

我想做的是获取所有stocks.stock_symbol 值并在过去24 小时内聚合(使用平均值)prices.price_value(因此过滤prices.price_created_datetime)。

我正在使用基于网络的工作室,并且尝试了几种不同的方法,但是当我的大多数查询都没有返回任何内容时,我很难理解这个概念。我在 Java 应用程序中嵌入了运行 OrientDB 2.1.9。

任何帮助,将不胜感激。