问题标签 [titan]
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.
neo4j - 社交网络的 Neo4j 图模型
我已经为社交网络创建了一个图形模型,并且需要一些关于缩放设计的具体建议。请原谅这些问题的n00bness,但我没有找到很多明确的例子......
注意:状态更新和活动节点/关系是链接列表 - 最新条目不断放置在列表顶部。
链接列表允许生成新闻提要,但每个用户可能有数百条记录——我认为即使数据按日期降序排列,限制子句也不够用。我是否必须有一个单独的链接列表,它只包含最近的 10 个状态/活动更新)并不断替换该列表上的头部以获得更好的活动源生成,或者一个列表正确排序并完成工作(使用限制条款)
这些节点都有属性(带有内容、ID 等的 json 数据)——“全局”索引如何在这里发挥作用,以便我可以找到喜欢 Depeche 模式的用户,而无需等待终生等待结果?我知道如何将节点添加到索引中,只是想知道我是否在这里遗漏了一部分图片。
安全性-登录名和密码..我认为图形数据库可以存储它们,但我认为此时这是一个安全风险-将其保存在 postgres 等中会更好吗?
您将如何改进此模型以处理可扩展性?想象一下有 2000 万用户在这方面大打出手……
想象一下 4000 万用户——这个模型在可扩展性方面有什么问题?
neo4j - Tinkerpop 蓝图顶点查询
我研究 Tinkerpop 堆栈已经有一段时间了。我想我很清楚它可以做什么以及它适用于哪些数据库。我现在正在考虑几个不同的数据库,但还没有确定。所以我决定把我的代码纯粹写到接口上,现在不考虑任何实现。在我正在查看的数据库中,它们实现了TransactionalGraph
和KeyIndexableGraph
. 我认为这足以满足我的需要,但我只有一个问题。
我有不同的“类”顶点。使用蓝图,我相信通过在每个顶点中包含类名的字段来最好地表示。这样做,我可以做类似的事情graph.getVertices("classname", "User")
,它会给我所有的用户顶点。并且由于该getVertices
函数指定实现应该使用索引,因此我可以保证快速查找(如果我索引该字段)。
但是假设我想根据两个属性检索一个顶点。顶点必须有className=Users
和username=admin
。找到该单个顶点的最佳方法是什么?即使不是所有的顶点都有一个username
字段,是否可以对这两个属性进行索引?
仅供参考 - 我目前考虑的数据库是 OrientDB、Neo4j 和 Titan,但我还没有确定。如果有帮助的话,我目前也计划使用 Gremlin。
clojure - 在 Titan 中创建版本节点
我是图形数据库和 Titan 的新手。我将 Titan 嵌入到 Clojure 应用程序中。当应用程序启动时,它会创建一个 BerkeleyDB 支持的 Titan 存储。
我想知道/做三件事:
- 这个数据库是新的吗?如果是这样,请创建版本为 0 的版本节点。运行迁移过程以将“模式”带到最新版本。
- 如果没有,它是否有版本节点?如果不是,则抛出异常。
- 如果数据库预先存在并且具有版本节点,则运行迁移过程以使“模式”保持最新。
我如何在泰坦中做到这一点?对此有最佳做法吗?
编辑:
好的,经过进一步审查,我认为使用硬编码的顶点 ID 是最有意义的。有一个 TitanTransaction.containsVertex(long vertexid)。这种方法有什么缺点吗?我想我不知道顶点是如何分配的以及它们的保留范围是什么,所以这闻起来很危险。我是图形数据库的新手,但我认为在 Neo4j 中建议从根节点创建参考节点。但是 Titan 不鼓励使用根节点,因为它会成为超级节点。身份证...
c# - 将 Titan graph db 与 c# 和 gremlin 一起使用
安装它太难了。我想使用 Berkeley + Elastic Search 配置。我不知道它是否已准备好生产。Rexter 好象是通讯层。我可以通过秘密启动泰坦服务器(?)
命令。db 的位置是 C:\tmp\titan-local。如何远程与 c# + gremlin 通信?
PS:由于gremlin支持,我不得不选择它。如果他们不放弃该项目-具有弹性搜索支持--符合gremlin-它看起来很有希望..
graph - 在两个顶点之间找到边的正确方法是什么?
使用 tinkerpop blueprints API,找出两个顶点之间是否存在边的最佳方法是什么?我想避免vertex.getEdges()
和迭代,直到找到合适的。
例如:检查是否v1
是朋友v2
我应该使用顶点查询吗?
通过 gremlin 我可以这样做:
谢谢您的帮助!我对此还是陌生的。
titan - 适用于 windows server 2008 的 Titan 服务器配置
io-strategy 在 titan-server-rexter.xml 配置文件中设置为“worker”(默认安装)第二个会话的 Gremlin 查询不适用于它。
我已将 io-strategy 设置为“领导者-跟随者”。它似乎工作。这个配置适合生产环境吗?
为什么第二个 gremlin 查询在“worker”配置中不起作用(挂起)?
存储层是 BerkeleyDB。客户端是:RexProClient (C#) 是不是跟这个问题有关呢?
graph-databases - 如何启动 Titan 图形服务器并与 gremlin 连接?
我玩Titan 图形服务器已经有一段时间了。我的感觉是,尽管有大量文档,但缺少从头开始教程。
我的最终目标是让泰坦在 cassandra 上运行并使用StartTheShift/thunderdome进行查询。
我见过几种启动 Titan 的方法:
使用 Rexster
从此链接,我能够通过以下步骤运行 Titan 服务器:
- 下载rexster-server 2.3
- 下载泰坦0.3.0
- 将所有文件复制
titan-all-0.3.0/libs
到rexster-server-2.3.0/ext/titan
编辑
/li>rexster-server-2.3.0/rexster.xml
并添加(在 a 之间):
对于 berkeleydb 或:
对于 cassandra 数据库。
- 启动服务器
./bin/rexster.sh -s -c rexster.xml
- 下载 rexster 控制台并运行它
bin/rexster-console.sh
- 您现在可以使用
g = rexster.getGraph("geograph")
这种方法的问题是您是通过 rexster 而不是 gremlin 连接的,因此您没有自动完成功能。优点是您可以命名您的数据库(此处为地理)。
将 Titan 服务器与 cassandra 一起使用
- 启动服务器
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
/li>cassandra.local
创建一个名为启动 Titan Gremlin 并连接
g = TitanFactory.open("cassandra-es.local")
这很好用。
将 Titan 服务器与 BerkeleyDB 一起使用
从这个链接:
- 下载泰坦0.3.0
- 启动服务器
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
- 启动泰坦小精灵:
./bin/gremlin.sh
但是一旦我尝试连接到 gremlin 中的数据库(图形),
g = TitanFactory.open('graph')
它会在我所在的目录中创建一个名为 graph 的新数据库。如果我在我的目录(已填充)所在的位置执行此操作,我会得到:无法实例化实现:com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEStoreManager
有人可以澄清这些过程,并告诉我我做错了什么。谢谢
gremlin - 如何在单个查询中搜索顶点并创建边?
我正在使用 gremlin 查询从给定顶点搜索顶点。
此查询返回一堆顶点。现在我正在通过简单的迭代器创建从“v”到所有返回顶点的边。
现在我的问题是:
是否有任何可用的流程/查询样式可供我搜索这些顶点并在同一查询中创建边?
我已经尝试过这个查询:
但我收到错误:
没有方法签名:groovy.lang.MissingMethodException.addEdge()
我目前正在使用 Gremlin-Groovy ScriptEngine 从 Java 类执行我的查询。
先感谢您。
java - 设置 Titan 和 Cassandra - 无法实例化存储管理器类
我已经设置了 cassandra 服务器(Datastax 社区版)并且运行良好。
我的cassandra.yaml有以下设置:
当我在 gremlin shell 中执行此操作时:
和,
我收到此错误:
我究竟做错了什么?
graph - Gremlin 循环遍历各种边缘方向
我有图表(见下图)。我使用 A 中的 gremlin,需要在边缘“影响”和“相似”之后循环所有树。
所以我需要类似的东西:
这个查询的问题是,关系“similarTo”有时可能在边缘,有时在边缘(见图),这取决于应用程序目前如何存储数据。我不能简单地使用 "both" (gv(A.id).both('impacts', 'similarTo')...) 来检索边缘,因为另一方面我只需要 out edge 来实现“影响”关系。也有可能,某些顶点(例如 C)缺少“similarTo”边,在这种情况下,循环应该只遵循“影响”关系。
最后我尝试了这样的事情,但我认为我用错了,结果不合适:
我也试图在遍历过程中按方向过滤边缘,但它可能不受支持,所以这也不起作用:
有什么建议么?