问题标签 [graph-databases]

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

google-analytics - 用于生成推荐的 Google 预测 API 与图形数据库?

(我承认我不是图形数据库或 NoSQL 方面的专家,到目前为止只将它用于一些业余项目。)

我一直在使用 InfiniteGraph 和 Stig 等技术进行推荐——这些是图数据库,据说针对此类任务进行了优化。看起来新的 Google Predictions API 能够达到同样的目的——给定一个数据集和用户的实际喜欢作为一个子集,能够预测用户可能实际喜欢什么。

是否有确定的指标可以将 Google 预测与其他基于图形的数据库进行比较?

0 投票
1 回答
274 浏览

java - 在 neo4j 索引中创建第 128 个节点后,无法访问更多节点

这似乎是一个非常奇怪的问题。我正在对我的 neo4j 图形数据库进行压力测试,因此我的一项测试需要创建大量用户(在此特定测试中为 1000)。所以代码如下,

dataService.createUser() 的代码是,

现在我需要在创建这些用户后调用 dataService.getUser() 。getUser() 的代码如下,

所以一切都很顺利,直到我创建了第 129 个用户。我在调试器中跟踪并观察作为第二个节点的 dataService.getUser(BigInteger.valueOf(1)) 的值、作为第 128 个节点的 dataService.getUser(BigInteger.valueOf(127)) 和 dataService 的值。 getUser(BigInteger.valueOf(i-1)) 这是创建的最后一个节点。调试器告诉我,在创建节点 128 后,不会创建节点 129 及更高版本,因为 getUser() 为这些节点抛出了 DoesNotExistException,但仍然为节点 2 和节点 128 提供了值。

我传递给 createUser() 的用户 ID 是自动索引的。

知道为什么它不制作更多节点(或不索引这些节点)吗?

0 投票
1 回答
1258 浏览

groovy - 为什么 java.lang.StackOverflowError 错误出现在 groovy 中

运行以下代码时:

我收到此错误:

还有更多堆栈跟踪。

请说明为什么会出现此错误。

0 投票
3 回答
8279 浏览

python - ORM 与 Python 中的 Neo4j 等图形数据库

我想知道是否有解决方案(或需要)带有图形数据库(fe Neo4j)的 ORM。我正在跟踪实体(包括这些实体的附加属性)的关系(A与B相关,B通过C等与A相关,从而构建一个大图)并且需要将它们存储在数据库中,我认为图形数据库非常适合这项任务。

现在,对于类似 sql 的数据库,我使用 sqlalchemyś ORM 来存储我的对象,特别是因为我可以从数据库中检索对象并以 Python 风格使用它们(使用它们的方法等)。

Neo4j 或其他 Graph-DB 是否有任何对象映射解决方案,以便我可以在 Graph-DB 中存储和检索 python 对象并轻松使用它们?

或者您会编写一些函数或适配器,如 python sqlite 文档 (http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself) 来检索和存储对象?

0 投票
1 回答
445 浏览

neo4j - 删除的节点重新出现在 Neo4j 中

我刚刚开始使用 Neo4j 并运行“Hello World”类型的示例。

我创建了一个新数据库并打印出节点数,即 1(因为创建数据库时似乎有一个默认节点)。

我创建一个节点并将其添加到图表中。该图报告现在有 2 个节点 - 好的。

然后我再次删除节点,图表报告有 1 个节点 - 好的。

然后我关闭了数据库。

但是,当我再次运行相同的代码时(不删除数据库文件)。它现在报告最初有 2 个节点。我得到的不是 1-2-1,而是 2-3-2。这只发生一次 - 在第一次运行后它总是报告 2-3-2。

为什么我删除的节点重新出现,但只是第一次出现?

下面的代码:

和输出:

第二次(及后续)运行:

0 投票
3 回答
2267 浏览

neo4j - 在 Neo4j 中表示(和增加)关系强度

我想在 Neo4j 图中表示节点之间关系的变化强度。

对于静态图,这很容易通过在关系上设置“强度”属性来完成:

但是,对于需要随时间更新的图形,存在一个问题,因为增加属性的值不能原子地(通过 REST 接口)完成,因为需要先读后写。如果图形正在更新以响应传入的流数据,则需要递增(而不仅仅是更新)。

我需要确保只有一个 REST 客户端一次读取和写入(外部同步),或者只使用嵌入式 API,以便我可以使用内置事务。这可能是可行的,但似乎很尴尬。

另一种解决方案可能是记录多个关系,没有任何属性,因此“强度”实际上是关系的计数,即

表示强度关系 3。

  • 缺点:只能记录整数强度
  • 优点:无需先读后写
  • 缺点:(可能)需要更多存储空间
  • 缺点:(可能)提取值要慢得多,因为必须提取和计算多个关系

有没有人尝试过这种方法,是否可能会遇到性能问题,尤其是在阅读时?

有没有更好的方法来建模这个?

0 投票
2 回答
2572 浏览

nosql - Orientdb 版本之间有什么区别?

我已经阅读 OrientDB 有一段时间了,我对该软件的“版本”有点困惑。

主版本听起来只是文档存储,但互联网上的东西听起来像是文档和图形数据库。http://nosql.mypopescu.com/post/1254869909/correction-orientdb-is-a-document-and-graph-store

那和图形版有什么区别?图形版只是用节点和边绘制图形,还是文档图形数据库?

更新:什么是键值存储版本?它有什么不同?可以和其他版本一起使用吗?

0 投票
0 回答
395 浏览

sorting - 按时间倒序对图数据库中的关系进行排序

假设我正在制作一个社交应用程序,其数据存储在图形数据库中,其中实体(人、事物...)是节点(带有属性“名称”),动作是关系(带有属性“什么”和“什么时候”)。还假设巨大的数据库和高负载,所以实现不应该只是工作,它应该尽可能快。

您将如何回答诸如“过去 5 分钟内发生了什么”之类的问题?以相反的时间顺序列出动作(及其主题/对象)?

0 投票
3 回答
19887 浏览

database - 在哪里可以找到 neo4j 快速教程?

我试图将有向图保存到数据库中以供进一步处理和查询。Neo4j 似乎符合我的需求。但是,我似乎没有找到关于以下内容的好的教程:

  • 创建数据库并放入数据。
  • 进行查询。

我希望能够手动和自动完成它们(即使用程序)。官方手册一直在谈论诸如 Maven、Index、REST API 之类的东西,基本上我现在根本不关心的东西。

那么neo4j有什么好的动手教程吗?或者您认为适合有简单需求的初学者的任何其他图数据库(即存储图和查询图)?

0 投票
4 回答
4554 浏览

neo4j - 如何使用 Cypher 在 neo4j 上找到断开连接的节点?

我在玩 neo4j 并注意到所有 Cypher 查询都需要在START子句中有一个起点。我想知道如何使用 Cypher 找到所有断开连接的节点?

谢谢