问题标签 [tinkerpop]

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 投票
3 回答
4402 浏览

python - 选择合适的方式在 Python 中使用 Neo4j

我目前正在为 neo4j 使用嵌入式 python 绑定。我目前没有任何问题,因为我的图非常小(稀疏且最多 100 个节点)。我正在开发的算法涉及图上的大量遍历,更具体地说,通常是图上的 DFS 以及不同的子图上的遍历。将来我打算在大型图上运行该算法(据说稀疏且具有数百万个节点)。

在这里阅读了与 python/neo4j 绑定性能相关的不同线程后,我想知道我是否应该已经切换到 Python 的一些 REST API 客户端(如bulbflow、py2neo、neo4jrestclient),直到我无法更改所有代码。

不幸的是,我没有找到任何全面的信息来源来比较不同的方法。

任何人都可以提供有关此问题的进一步见解吗?在选择其中一个选项时,我应该考虑哪些标准?

0 投票
2 回答
794 浏览

python - 使用什么格式存储图表

我正在从事一个项目,该项目涉及使用从其他来源提取的图形。目前我们正在使用 python 的networkx模块来分析图形。

我现在面临的任务是选择存储图形的格式。对于纯基于 python 的解决方案,Pickle 似乎是一个不错的选择。然而,我们现在处于原型设计阶段,很有可能我们将不得不切换到 C++ 来解决性能和可伸缩性问题。

因此,我希望以大多数图形库广泛支持的格式存储我的图形,以最大程度地减少项目中未来贡献者面临的麻烦。

你能给我一些关于我应该使用哪种格式的建议吗?

0 投票
1 回答
1025 浏览

graph - 灯泡 / Gremlin / Titan 的关键索引

我正在尝试将我的 Neo4J 应用程序移植到 Titan,但遇到了一些与索引相关的问题。我知道 Titan 不支持顶点或边缘索引,只支持“关键”索引,对吗?

我也在使用灯泡模型,例如:

添加 Person(facebook_id='111') 以检索时应该可以使用:

它不起作用,并告诉我需要在使用之前创建键索引。所以我删除了键空间并在 rexster doghouse 中手动创建了索引:

之后,用灯泡创建了 Person(facebook_id='111') 并尝试在 rexster doghouse 上检索:

并得到空洞的回应。使用 Titan 顶点 ID 获取时,它可以工作,但“facebook_id”为空并且“.map()”不起作用:

附言

  • 这是我删除键空间后创建的第一个顶点
  • 是否可以自动创建键索引?

有小费吗?

谢谢!

雷纳托·佩迪戈尼

0 投票
1 回答
2070 浏览

python - Bulbflow:neo4jserver Graph 和 neo4jserver Neo4jclient 的区别

我现在正在尝试学习如何连接到 Neo4j 服务器并使用 Python 中的 Bulbflow 在其上运行 Cypher 查询。我不明白的是连接到neo4j服务器的两种可能性之间的区别:

1)图表

2) Neo4jClient

谁能在这里解释概念上的差异?如果我想对服务器执行(相当多)Cypher 查询并最终并行执行,那么选择哪种方式更好?

PS:我没有足够的声誉来为这个问题创建一个标签“bulbflow”:)

0 投票
2 回答
183 浏览

neo4j - 无法使模式与单个 gremlin 语句匹配

我有一个依赖关系图:

我正在寻找不必要的依赖关系,这些依赖关系存在直接链接,但也存在通过子依赖关系的链接。在上面的例子中,链接“dep1 -> dep3”是不必要的。

找到这些的密码语句将是:

我试图用一个 gremlin 语句(使用“table”-step)来解决这个问题,但我就是无法让它工作。这甚至可能吗,还是我必须用多个语句来解决这个问题?

任何提示、提示、想法将不胜感激。

提前致谢

0 投票
2 回答
2213 浏览

neo4j - Tinkerpop 蓝图顶点查询

我研究 Tinkerpop 堆栈已经有一段时间了。我想我很清楚它可以做什么以及它适用于哪些数据库。我现在正在考虑几个不同的数据库,但还没有确定。所以我决定把我的代码纯粹写到接口上,现在不考虑任何实现。在我正在查看的数据库中,它们实现了TransactionalGraphKeyIndexableGraph. 我认为这足以满足我的需要,但我只有一个问题。

我有不同的“类”顶点。使用蓝图,我相信通过在每个顶点中包含类名的字段来最好地表示。这样做,我可以做类似的事情graph.getVertices("classname", "User"),它会给我所有的用户顶点。并且由于该getVertices函数指定实现应该使用索引,因此我可以保证快速查找(如果我索引该字段)。

但是假设我想根据两个属性检索一个顶点。顶点必须有className=Usersusername=admin。找到该单个顶点的最佳方法是什么?即使不是所有的顶点都有一个username字段,是否可以对这两个属性进行索引?

仅供参考 - 我目前考虑的数据库是 OrientDB、Neo4j 和 Titan,但我还没有确定。如果有帮助的话,我目前也计划使用 Gremlin。

0 投票
4 回答
6586 浏览

graph - 在两个顶点之间找到边的正确方法是什么?

使用 tinkerpop blueprints API,找出两个顶点之间是否存在边的最佳方法是什么?我想避免vertex.getEdges()和迭代,直到找到合适的。

例如:检查是否v1是朋友v2

我应该使用顶点查询吗?


通过 gremlin 我可以这样做:

Neo4j方式:

谢谢您的帮助!我对此还是陌生的。

0 投票
0 回答
132 浏览

graph-databases - 如何使 JungGraph 表现为无向网络?

有没有办法让一个JungGraph行为像一个无向网络?

我将文件中的 UNDIRECTED 网络读graphml入蓝图Graph,然后从中创建了JungGraph.

当我使用 和 的这个实例运行一些 JUNG 算法时JungGraph,我得到了不正确的中心性分数——在我看来,将网络视为 DIRECTED,并且没有传出边的节点得到 0.0 的接近度和中介度分数ClosenessCentralityBetweennessCentralityJungGraph

如何JungGraph从 UNDIRECTED 网络中创建一个?

请帮忙。

0 投票
1 回答
291 浏览

neo4j - 使用 neo4j 图形搜索文件内容的最佳方式

我有一个应用程序(除其他外)将文件系统树存储在 neo4j 图中。也就是说每个目录和文件都是一个节点。其中一些文件是 Office 文档、文本或 pdf 文件,我想提供一些搜索功能。

搜索功能应该扫描节点属性和文件内容并返回最相关的节点。

--------------------------------------------------

更新额外信息:

该图允许过滤掉文件的子集。文件节点还包含需要搜索的自定义元数据。许多应用之一是:

用户搜索“术语”> 使用图形来查找此搜索适用的文件(例如,取决于用户组和权限),然后在两个节点属性中搜索“术语”和文件内容 > 返回最相关的结果。

可能某些文件可能出于某种原因链接到其他文件,并且这些文件也应该被搜索,但优先级较低(理想情况下,“术语”命中应该少于初始文件的命中)

现实生活中的案例复杂程度是这个的十倍,所以我不能替换/删除图形数据库的使用,或者数据库的影响会导致结果相关性。

--------------------------------------------------

我的问题是:

  1. 实现这一点的最佳方法是什么?
  2. 我应该提取文件内容并将它们放在每个节点的索引属性中吗?
  3. 这样做的缺点是什么?
  4. 有没有更好的方法来解决它?

提前谢谢各位。

更多详细信息:

  • PHP 网络应用程序
  • 使用 Rexster 加载和访问 neo4j 图
  • 查询语言 = gremlin (groovy)
0 投票
1 回答
1147 浏览

gremlin - Titan-Cassandra 图没有(立即)在提交时保存?

我正在 Windows 7 上使用 Titan Server(使用 Cassandra)v0.3.1,并看到一些关于写入图表的不一致行为。出于某种原因,新节点在提交事务后似乎“消失”了。我认为其中涉及某种缓存/延迟写入,但不确定 Titan 在幕后做了什么。

您对为什么节点在提交时似乎消失有任何想法吗?

--

以下是在 Gremlin shell 中运行的一系列命令:

显示到目前为止我添加到图表中的两个节点:

现在添加一个节点:

新节点出现在图中:

现在,提交事务:

...并且新节点消失了: