问题标签 [orientdb]
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.
orientdb - OrientDB 的索引方案是什么?
就像问题说的那样。您是否需要将文档添加到明确的索引中?还是自动二级索引?
console - OrientDB GraphED - 可以自定义记录标识符吗?搜索 150 万条记录非常慢
Orient 版本:官方分发 OrientDB Graph Edition 1.0.1
我正在尝试使用 OrientDB SQL 插入构建蓝图兼容图(比 g.addVertex 快并且没有 OutOfMemory 错误)。
创建 150 万条记录时,通过控制台(批处理)插入的时间比预期的要长(四核 i7 上为 13 分钟),并且通过“名称”字段搜索非常慢(2 分钟)。
出于测试目的,我们有一个非常简单的导入 sql 文件,它尝试创建与两个设置参数 name:account_id 和 type:account_type 以及空输入/输出数组兼容的蓝图顶点。
进口.ornt:
注意:最好能够将记录标识符设置为我们预先存在的 account_id。但我不确定如何尝试这个。
上面的 sql 最终约为 100MB,我通过控制台运行它(console.sh 包括优化-Dmvrbtree.optimizeThreshold=-1
):
在这一点上,我们有了基本的 OrientDB 图形,其中 OGraphVertex 类大约有 150 万个顶点。
使用控制台,通过 Orient SQL 或 Gremlin/Pipes 进行选择需要很长时间:
使用 OrientDB SQL 或 Gremlin 大约需要 2 分钟!
作为一种潜在的解决方法,最好将记录标识符设置为来自 MySQL 数据库源的原始帐户 ID。是否可以有自定义记录 ID?
例如,由于我们会在开始遍历时知道 account_id(例如 1149400),所以理想的情况是:
0.054000 比 112.531 快很多!!
sql - OrientDB GraphED - SQL 在两个(选择顶点 RID)之间插入边?或非常大的进口替代方法
例如,OrientDB Graph 中的两个简单顶点:
有没有办法通过只知道它们的“标签”而不是它们的“RID”来在这两个顶点之间创建一条边?
例如(不起作用):
我已经尝试将“FLATTEN”作为一种潜在的解决方法。没运气:
创建的边在null
和之间null
。没有骰子。
我希望为此使用 OrientDB SQL,因为我有大量的连接导入并且 SQL 方法似乎更快。
但是,如果这是不可能的,关于批量导入边缘(大约 2M)的替代方案有什么建议吗?
bigdata - OrientDB GraphDatabase:@RID 的 OSQLSynchQuery 以获取 graph.getVertex(rid) ...从索引键加载顶点的最快方法?
给定带有索引“名称”(唯一或非唯一)的基本蓝图兼容 OrientGraph,如果需要,有什么建议可以改进以下内容?
注意:我找不到使用索引加载 [blueprints] 顶点的权威指南。我有一个大图,使用 has('name','bob') (在控制台中)需要 2 分钟!另一方面,基于索引的搜索以毫秒为单位返回。
到目前为止我想出的最好的:
dijkstra - 使用 Gremlin 的 Dijkstra 算法
我想在 Gremlin 中实现 Dijkstra 的算法,以创建一个仅包含最短路径的全网格图。
我在 OrientDB 数据库之上使用 Gremlin。由于Furnace中的最短路径算法还没有实现,所以需要自己实现。我了解 Gremlin 的基本工作原理,但我目前坚持使用它。
我也可以用 Java 编写它,但我需要 Gremlin 解决方案的灵活性。如何才能做到这一点?
java - 在 Java 小程序中运行 OrientDB
编辑:找到解决方案。在 Maven 构建过程中缩小代码是一个问题。在 Java Applet 中运行 OrientDB 是可能的。
我在 Java Applet 中启动内存 OrientDB 时遇到问题。我使用带有 OrientDB 版本 1.0.1 的签名 Applet。有人在 Applet 中实现了 OrientDB 并且可以验证这是可能的,或者可以帮助我解决这个异常吗?
我得到的例外:
我启动数据库的 Applet 代码:
java - OrientDB bean 唯一字段
我正在尝试为 OrientDB 创建唯一的 bean 字段,但找不到仅找到 @Id @Version 注释的方法。我作为对象数据库工作。
java - OrientDB 行数
如何从 Object DB 获取 Java 中的特定行数?
我需要得到查询的结果,例如:
SELECT COUNT(id) FROM Users WHERE banned=true
java - 在 OrientDB 中查询嵌入列表
我的 OrientDB 数据库(版本 1.0.1)中有一个文档,其结构大致如下:
我如何查询整个列表,例如。如果我想查找所有包含“忽略”类型的测试用例的文档?
我尝试了以下查询
但这会导致NumberFormatException
.
有效,但显然只查看每个文档的第一个列表元素。
不提供任何结果,但查询被接受为有效。
更新: 如果测试用例存储为单独的文档而不是嵌入列表,则以下查询按预期工作。
database-design - OrientDB -- twitter 之类的实现和排序
我正在构建一个简单的图表,我想请教你如何做到这一点的建议,这样当它添加更多的顶点和边时,它仍然会表现得很好。我的图表布局是这样的。
这是我的查询:
当我进行分页(例如显示更多活动)时,我只需将其添加到where clause
:
上面是1234
显示的最后一个活动的 id。
当一个人关注 < 10 个用户并且每个用户有 < 500 个活动时,这一切正常。但是当它变得更大时,它会对order by
按日期对所有活动进行排序以向用户呈现活动流的子句施加压力。
我想知道推特是怎么做到的?是否有一些设计原则,即使是那些不严格与 OrientDB 相关的,我还没有应用这将使这成为可能?