问题标签 [tinkerpop-blueprint]
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`OrientGraphNoTx`超类V;不存在
我正在以编程方式加载一个包含 OSql 语句的文件,以使用 Blueprint API 创建我的数据库架构,具体来说,我plocal
通过实例化OrientGraphNoTx
类来创建模式下的数据库:
我收到一个奇怪的错误,指出V
我的数据库中不存在该类:
这是一些生成错误的示例代码:
正如我所看到的,很少有其他人有类似的问题,并通过在graph
他们的CREATE DATABASE
语句中指定关键字来解决它,但是,我想系统应该已经知道我正在使用图表,因为我正在使用OrientGraphNoTx
. 无论如何,我已经尝试CREATE DATABASE
在我的脚本中添加一条语句,但是正如预期的那样,我得到了一个错误:
我正在使用lib
OrientDB 2.1.4 目录中包含的 jar。
有谁知道如何解决这个问题?
rest - Tinkerpop Stack Rexster REST API _properties
Technology Stack:
- Tinkerpop Stack 2.4 (Rexster HTTP REST Server)
- Titan 0.5.4
- DynamoDB (AWS)
- NodeJS
Goal:
I would like to utilize the Rexster RESTful based API for querying and traversals of my graph database. I am trying to understand the _properties query parameter for filtering results based on Vertex Query syntax.
Result of Vertices Query:
http://localhost:8182/graphs/mygraph/vertices
{
"version": "2.5.0",
"results": [
{
"name": "Frank Stein",
"_id": 25600768,
"_type": "vertex"
},
{
"name": "John Doe",
"_id": 25600512,
"_type": "vertex"
}
],
"totalSize": 2,
"queryTime": 219.86688
}
Result of Edge Query:
http://localhost:8182/graphs/mygraph/vertices
{
"version": "2.5.0",
"results": [
{
"_id": "f8q68-f8phc-4is5-f8pog",
"_type": "edge",
"_outV": 25600512,
"_inV": 25600768,
"_label": "friends"
}
],
"totalSize": 1,
"queryTime": 164.384768
}
Problem:
These URI's do not return what I am assuming I would get returned, always return an empty set.:
Requests:
_http://localhost:8182/graphs/privvy/vertices/25600768/both?properties=[[name,=,"John Doe"]] _http://localhost:8182/graphs/privvy/vertices/25600768/both?properties=[[name,=,John Doe]] _http://localhost:8182/graphs/privvy/vertices/25600768/both?properties=[[name,=,(s,"John Doe")]] _http://localhost:8182/graphs/privvy/vertices/25600768/both?properties=[[name,=,(s,John Doe)]]
Response:
{
"version": "2.5.0",
"results": [],
"totalSize": 0,
"queryTime": 22.641152
}
Additional Information:
The following URI does return a resulting set of adjacent vertices if I just switch the = (equal operator) to the <> (not equal) operator:
Request:
_http://localhost:8182/graphs/privvy/vertices/25600768/both?properties=[[name,<>,"John Doe"]]
Response:
{
"version": "2.5.0",
"results": [
{
"name": "John Doe",
"_id": 25600512,
"_type": "vertex"
}
],
"totalSize": 1,
"queryTime": 17.451008
}
Anyone have any clue where I may be going wrong?
References:
- https://github.com/tinkerpop/rexster/wiki/Basic-REST-API
- https://github.com/tinkerpop/rexster/wiki/Property-Data-Types (Shows NO EXAMPLES of string use for data type Vertex Queries.)
- https://github.com/tinkerpop/blueprints/wiki/Vertex-Query
Thanks Friends!
Tom
orientdb - OrientBaseGraph 的 getVertices(String arg0, String[] arg1, Object[] arg2) 不返回子类
我正在使用 orientdb 2.1.4。我有一个类(顶点)ParentV,它有子类(顶点)ChildV。
当我使用 getVertices("ParentV", new String[]{key}, new Object[]{value}) 查询数据库时,没有找到“ChildV”类型的结果。
谁能让我知道如何在上述函数中启用多态搜索,因为我需要给定键匹配给定值的所有结果(包括父类和子类)。
注意:我不能使用任何其他 getVertices 函数,因为存在多个键和值的情况。这些函数由 tinkerpop blueprints API 提供。
java - 使用 gremlin/blueprints 从 OrientDB 检索 graphJson
我开始与 orientDB 合作,遇到了障碍,此时,文档让我大吃一惊。
我正在尝试查询一个 orientDB 实例,并将响应作为 graphJSON 返回,以便在基于 d3.js 的 UI 中将其可视化。我已经从我的 java 应用程序中尝试了各种方法,并且可以检索返回的单个边和顶点的 json:
或者我可以检索整个图形的 graphJSON:
以及其他各种努力。
有没有办法在第二个示例中对图表进行子集化?我应该尝试将所有单独的 JSON 结果合并到一个 graphJSON 文件中吗?我是否应该尝试从我的查询结果中创建一个新的临时图表并将其提供给 GraphSONWriter?
谢谢你的帮助。
更新
首先,我采用第一种方法,然后遍历结果列表,构建我自己的 graphJSON。似乎是一个非常讨厌的解决方案,但它已经解开了其他几个故事并让我们继续前进(在途中引入技术债务)。我确实尝试了第二个选项,但即使返回完整的图形,它输出的“graphJSON”似乎也不是标准的(或者至少不符合我们 d3 库的解释)。似乎是一个非首发。
任何建议都会非常受欢迎 - gremlin?
orientdb - OrientDB 查询方式太慢
我可以通过网络界面很好地执行下面的这个查询。几乎不需要任何时间来完成。
但是当我尝试从我的 Java 应用程序中执行此操作时,它需要超过 17 秒才能完成。
我使用的代码基本上是这两行:
难道是REST请求慢得多?Web 界面使用 plocal(我猜),而我的 Java 应用程序使用远程连接。
neo4j - Neo4j2.3 修补程序
现在我们正在使用带有 tinkerpop blueprints 2.4 API 的 Neo4j 1.9.9 版本(嵌入式模式)。我们计划将我们的 Neo4j 升级到 2.3。但我看到蓝图与 neo 2.3 不兼容。由于我们的系统现在很稳定,我们正在尝试升级我们的 neo4j,而不会对 crud 层造成太大影响。1.谁能帮我理解为什么蓝图与2.3不兼容?2.如果我打算根据我的理解使用spring-data,它不适用于嵌入式模式。如果你遇到这种情况,有人可以分享一下你是如何解决这个问题的吗?
spring - Orientdb分区图java实现
我有一个后端 Spring 应用程序和 Orientdb 图形数据库。我使用 Tinkerpop Frames 将 orientdb 顶点映射到 java 对象,并使用 OPS4J 进行 spring 事务管理。现在我想在那里实现一个多租户,其中几个客户(租户)使用这个应用程序实例。该应用程序完全按照 REST 原则运行,并且对多个 Angular 应用程序开放——每个应用程序每个客户。因此,前端 Angular 应用程序与我们的客户一样多,而后端 REST Spring 应用程序只有一个。后端从 HTTP 请求中识别租户。
现在我不确定最好的解决方案......
第一个解决方案
当我阅读 Orientdb 文档时,我发现了一种如何在 orientdb 中实现多租户的方法 - http://orientdb.com/docs/2.1/Partitioned-Graphs.html。但是我不知道如何通过 Java API 使用它,除非我不想为每个请求创建一个新的数据库连接。因为现在 Spring 事务管理器从连接池中获取连接,连接池是在 Spring 事务管理配置中集中设置的。我没有找到任何 Java 示例。
Spring事务管理配置:
获取连接:
第二种解决方案
另一种解决方案是使用 Tinkerpop
分区图
在 Orientdb 上工作的类,但我在 Orientdb 文档中没有找到任何关于这种可能性的句子。就在 Tinkerpop 中 - https://github.com/tinkerpop/blueprints/wiki/Partition-Implementation。它可以工作,但最后它只是在每个 orientdb 顶点中创建一个未索引的属性,所以我担心这里的查询性能。
有没有人有这方面的经验?有什么建议吗?
scala - 如何处理orientdb蓝图中的选项
我正在使用带有 Blueprint API 的 Scala 和 OrientDB。
当我要存储 Option[Int] 类型的 val(到整数类型)时的行为是这样的:
这种行为是正确的,但是如果我要存储 Option[String] (到 String 类型),我会得到:
如何避免这种情况?
解决了
我已将此添加到配置中
我改变了这样的代码:
orientdb - (Tinkerpop) DAO 对象到模型对象之间的 FramedGraph 映射
我正在使用 OrientDb 2.2 和 TinkerPop FramedGraph。我使用 FramedGraph 是为了方便与对象模型交互,而不是做setProperty("name", "bob")
我对 FramedGraph 不了解的一件事是为什么我有无法实现的接口 DAO 对象?由于上述限制,我有重复的对象:tinkerpop DAO 接口和模型对象。
interface UserNode {
private String firstName;
private String lastName;
}
class User {
private String firstName;
private String lastName;
}
这在写入和读取大块数据时会产生重大开销。
List<User> fetchAllUsers() {
Iterable<UserNode> userNodes = graph.query().vertices(UserNode.class);
List<User> users = new ArrayList<>();
for (UserNode userNode: userNodes) {
User user = new User();
user.setFirstName(userNode.getFirstName());
user.setLastName(userNode.getLastName());
users.add(user);
}
}
有没有办法避免上述低效率?
scala - 使用 gremlin-scala 包装器将顶点写入 OrientDB
我正在使用"com.michaelpollmeier" %% "gremlin-scala" % "3.2.0.1"
with"com.michaelpollmeier" % "orientdb-gremlin" % "3.2.0-incubating.1-SNAPSHOT"
将一些域对象作为顶点存储到 OrientDB (v2.1.20)
我知道这是非常前沿的代码,但我想要一些指针来理解为什么驱动程序会抛出这个异常:
引起:com.orientechnologies.orient.core.exception.ODatabaseException:com.orientechnologies.orient.core.serialization.serializer.record.binary.OSerializableWrapper.fromStream(OSerializableWrapper.java:47) 处的可序列化反序列化错误。 orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readSingleValue(ORecordSerializerBinaryV0.java:382) ... 13 更多原因:java.lang.ClassNotFoundException: com.esc.domain.Address
任何提示都会非常感谢发生了什么:)
最佳,爱德华多