问题标签 [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.
python - 选择合适的方式在 Python 中使用 Neo4j
我目前正在为 neo4j 使用嵌入式 python 绑定。我目前没有任何问题,因为我的图非常小(稀疏且最多 100 个节点)。我正在开发的算法涉及图上的大量遍历,更具体地说,通常是图上的 DFS 以及不同的子图上的遍历。将来我打算在大型图上运行该算法(据说稀疏且具有数百万个节点)。
在这里阅读了与 python/neo4j 绑定性能相关的不同线程后,我想知道我是否应该已经切换到 Python 的一些 REST API 客户端(如bulbflow、py2neo、neo4jrestclient),直到我无法更改所有代码。
不幸的是,我没有找到任何全面的信息来源来比较不同的方法。
任何人都可以提供有关此问题的进一步见解吗?在选择其中一个选项时,我应该考虑哪些标准?
python - 使用什么格式存储图表
我正在从事一个项目,该项目涉及使用从其他来源提取的图形。目前我们正在使用 python 的networkx模块来分析图形。
我现在面临的任务是选择存储图形的格式。对于纯基于 python 的解决方案,Pickle 似乎是一个不错的选择。然而,我们现在处于原型设计阶段,很有可能我们将不得不切换到 C++ 来解决性能和可伸缩性问题。
因此,我希望以大多数图形库广泛支持的格式存储我的图形,以最大程度地减少项目中未来贡献者面临的麻烦。
你能给我一些关于我应该使用哪种格式的建议吗?
graph - 灯泡 / Gremlin / Titan 的关键索引
我正在尝试将我的 Neo4J 应用程序移植到 Titan,但遇到了一些与索引相关的问题。我知道 Titan 不支持顶点或边缘索引,只支持“关键”索引,对吗?
我也在使用灯泡模型,例如:
添加 Person(facebook_id='111') 以检索时应该可以使用:
它不起作用,并告诉我需要在使用之前创建键索引。所以我删除了键空间并在 rexster doghouse 中手动创建了索引:
之后,用灯泡创建了 Person(facebook_id='111') 并尝试在 rexster doghouse 上检索:
并得到空洞的回应。使用 Titan 顶点 ID 获取时,它可以工作,但“facebook_id”为空并且“.map()”不起作用:
附言
- 这是我删除键空间后创建的第一个顶点
- 是否可以自动创建键索引?
有小费吗?
谢谢!
雷纳托·佩迪戈尼
python - Bulbflow:neo4jserver Graph 和 neo4jserver Neo4jclient 的区别
我现在正在尝试学习如何连接到 Neo4j 服务器并使用 Python 中的 Bulbflow 在其上运行 Cypher 查询。我不明白的是连接到neo4j服务器的两种可能性之间的区别:
1)图表
2) Neo4jClient
谁能在这里解释概念上的差异?如果我想对服务器执行(相当多)Cypher 查询并最终并行执行,那么选择哪种方式更好?
PS:我没有足够的声誉来为这个问题创建一个标签“bulbflow”:)
neo4j - 无法使模式与单个 gremlin 语句匹配
我有一个依赖关系图:
我正在寻找不必要的依赖关系,这些依赖关系存在直接链接,但也存在通过子依赖关系的链接。在上面的例子中,链接“dep1 -> dep3”是不必要的。
找到这些的密码语句将是:
我试图用一个 gremlin 语句(使用“table”-step)来解决这个问题,但我就是无法让它工作。这甚至可能吗,还是我必须用多个语句来解决这个问题?
任何提示、提示、想法将不胜感激。
提前致谢
neo4j - Tinkerpop 蓝图顶点查询
我研究 Tinkerpop 堆栈已经有一段时间了。我想我很清楚它可以做什么以及它适用于哪些数据库。我现在正在考虑几个不同的数据库,但还没有确定。所以我决定把我的代码纯粹写到接口上,现在不考虑任何实现。在我正在查看的数据库中,它们实现了TransactionalGraph
和KeyIndexableGraph
. 我认为这足以满足我的需要,但我只有一个问题。
我有不同的“类”顶点。使用蓝图,我相信通过在每个顶点中包含类名的字段来最好地表示。这样做,我可以做类似的事情graph.getVertices("classname", "User")
,它会给我所有的用户顶点。并且由于该getVertices
函数指定实现应该使用索引,因此我可以保证快速查找(如果我索引该字段)。
但是假设我想根据两个属性检索一个顶点。顶点必须有className=Users
和username=admin
。找到该单个顶点的最佳方法是什么?即使不是所有的顶点都有一个username
字段,是否可以对这两个属性进行索引?
仅供参考 - 我目前考虑的数据库是 OrientDB、Neo4j 和 Titan,但我还没有确定。如果有帮助的话,我目前也计划使用 Gremlin。
graph - 在两个顶点之间找到边的正确方法是什么?
使用 tinkerpop blueprints API,找出两个顶点之间是否存在边的最佳方法是什么?我想避免vertex.getEdges()
和迭代,直到找到合适的。
例如:检查是否v1
是朋友v2
我应该使用顶点查询吗?
通过 gremlin 我可以这样做:
谢谢您的帮助!我对此还是陌生的。
graph-databases - 如何使 JungGraph 表现为无向网络?
有没有办法让一个JungGraph
行为像一个无向网络?
我将文件中的 UNDIRECTED 网络读graphml
入蓝图Graph
,然后从中创建了JungGraph
.
当我使用 和 的这个实例运行一些 JUNG 算法时JungGraph
,我得到了不正确的中心性分数——在我看来,将网络视为 DIRECTED,并且没有传出边的节点得到 0.0 的接近度和中介度分数ClosenessCentrality
。BetweennessCentrality
JungGraph
如何JungGraph
从 UNDIRECTED 网络中创建一个?
请帮忙。
neo4j - 使用 neo4j 图形搜索文件内容的最佳方式
我有一个应用程序(除其他外)将文件系统树存储在 neo4j 图中。也就是说每个目录和文件都是一个节点。其中一些文件是 Office 文档、文本或 pdf 文件,我想提供一些搜索功能。
搜索功能应该扫描节点属性和文件内容并返回最相关的节点。
--------------------------------------------------
更新额外信息:
该图允许过滤掉文件的子集。文件节点还包含需要搜索的自定义元数据。许多应用之一是:
用户搜索“术语”> 使用图形来查找此搜索适用的文件(例如,取决于用户组和权限),然后在两个节点属性中搜索“术语”和文件内容 > 返回最相关的结果。
可能某些文件可能出于某种原因链接到其他文件,并且这些文件也应该被搜索,但优先级较低(理想情况下,“术语”命中应该少于初始文件的命中)
现实生活中的案例复杂程度是这个的十倍,所以我不能替换/删除图形数据库的使用,或者数据库的影响会导致结果相关性。
--------------------------------------------------
我的问题是:
- 实现这一点的最佳方法是什么?
- 我应该提取文件内容并将它们放在每个节点的索引属性中吗?
- 这样做的缺点是什么?
- 有没有更好的方法来解决它?
提前谢谢各位。
更多详细信息:
- PHP 网络应用程序
- 使用 Rexster 加载和访问 neo4j 图
- 查询语言 = gremlin (groovy)
gremlin - Titan-Cassandra 图没有(立即)在提交时保存?
我正在 Windows 7 上使用 Titan Server(使用 Cassandra)v0.3.1,并看到一些关于写入图表的不一致行为。出于某种原因,新节点在提交事务后似乎“消失”了。我认为其中涉及某种缓存/延迟写入,但不确定 Titan 在幕后做了什么。
您对为什么节点在提交时似乎消失有任何想法吗?
--
以下是在 Gremlin shell 中运行的一系列命令:
显示到目前为止我添加到图表中的两个节点:
现在添加一个节点:
新节点出现在图中:
现在,提交事务:
...并且新节点消失了: