问题标签 [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.
nosql - 寻找具有 .NET 或 C++ 绑定的成熟、可扩展的 GraphDB
我对 GraphDB的基本要求:
- 成熟(生产就绪)
- 本机 .NET 或 C++ 语言绑定
- 横向可扩展性:两者
- 自动数据冗余和分片
- 分布式图算法/查询执行
目前我取消了以下资格:
- InfiniteGraph:没有 C++/.NET 语言绑定
- HyperGraphDB:无 C++/.NET 语言绑定
- 微软三位一体:不成熟
- Neo4j:未分发
我不确定以下内容的可扩展性:
- 稀疏 DEX
- Franz Inc. AllegroGraph
- Sones GraphDB
我发现有关水平可扩展性功能的可用信息非常笼统。我想这是有充分理由的。
任何信息,将不胜感激。
graph - 如何在 Gremlin 中链接命令?
以下命令有效
以下命令有效
以下命令不起作用
为什么?
nosql - 如何在图形数据库(如 Neo4j)中建模现实世界的关系?
我有一个关于在图形数据库中建模的一般性问题,我似乎无法理解。
你如何模拟这种类型的关系:“牛顿发明了微积分”?
在一个简单的 graph 中,你可以这样建模:
...因此,当您添加更多人和发明时,您将拥有一堆“发明”的图形关系。
问题是,您开始需要向关系中添加一堆属性:
- 发明日期
- 有影响力的概念
- 有影响力的人
- books_inventor_write
...并且您将要开始在这些属性和其他节点之间创建关系,例如:
- 影响人:与人节点的关系
- books_inventor_wrote:与书节点的关系
所以现在看起来“现实世界的关系”(“发明”)实际上应该是图中的一个节点,并且该图应该如下所示:
更复杂的是,其他人也参与了微积分的发明,所以现在的图形变成了这样:
所以我问这个问题是因为您似乎不想在实际的图形数据库“关系”对象上设置属性,因为您可能希望在某些时候将它们视为图中的节点。
它是否正确?
我一直在研究Freebase Metaweb Architecture,他们似乎将一切都视为一个节点。例如,Freebase 有一个Mediator/CVT的想法,您可以在其中创建一个“Performance”节点,将“Actor”节点链接到“Film”节点,如下所示:http ://www.freebase.com/edit /topic/en/the_last_samurai。不太确定这是否是同一个问题。
您使用哪些指导原则来确定“现实世界的关系”是否实际上应该是图节点而不是图关系?
如果有任何关于这个主题的好书,我很想知道。谢谢!
neo4j - 如何切换图形(在 Neo4j 上)?
使用后如何返回 Neo4J 图表
我想这有点像
编辑:
您的回答帮助我更好地了解 loadGraphML() 的工作原理,但它并没有解决我的问题。
我将重新表述我的问题。我使用 Neo4j 和 Gremlin,当我第一次启动服务器时,我在 Gremlin 控制台下得到以下行。
然后我输入
但是我怎样才能回到“g = neo4jgraph [EmbeddedGraphDatabase [/home/user/software/neo4j-community-1.5.M01/data/graph.db]]”
nosql - 如何让 neo4j 无法被全世界访问?
我正在运行 neo4j 版本 1.5M01。我也试过 1.4.1 版。而且我不知道如何阻止它在极其不安全的模式下运行,在这种模式下,通过 HTTP 连接到它的任何人都具有对数据库的完全读/写/shell 访问权限。
我知道 neo4j 不能自行管理安全性。我只想关闭端口,因此只能从 localhost 访问它。
http://docs.neo4j.org/chunked/snapshot/server-configuration.html上的文档说这是您打开端口的方式:
指定网络服务器的客户端接受模式(默认为 127.0.0.1,仅限本地主机):
# allow any client to connect
org.neo4j.server.webserver.address=0.0.0.0
但如果我把那条线去掉,它仍然是开放的。如果我将其更改为 127.0.0.1,它也仍然处于打开状态。
neo4j - 相同类型但在相同两个节点之间具有不同属性的多个关系
我可以在相同的两个节点之间创建多个相同类型的关系吗?我正在尝试发现与相同关系类型连接的节点中的模式。例如,关系 PERFORMED_BY 可以有一个属性来记录 Person1 作为执行者,并带有从节点 A 到节点 B 的转换的时间戳,而第二个关系 PERFORMED_BY 可以让 Person2 在相同两个节点之间的不同时间作为执行者。
neo4j - 如何更新 Gremlin 上的几个顶点属性?
我想在一个顶点上添加几个属性。我可以做:
但是如何在单个查询中使用以下哈希 {firstname:'Marko', lastname:'Rodriguez'} 添加这些属性?
graph - Neo4J 对有向树的通用遍历
我使用图形数据库 Neo4J 对有向树结构进行了建模。所以我有这样的东西:http: //ouwarovite.net/YAPC/220px-Binary_tree.svg.png(非强制性二进制)
我的数据库的用户可以随意添加已有节点的子节点,所以树的高度和单个节点的度数是未知的。
现在,我想像这样查询我的树:从节点 x 开始,给我所有叶子是叶子 x 的后代。
这种查询是否可以使用 Gremlin 或 Cypher 执行,如果可以,如何实现最大性能?(我还没有找到对“通用”树执行查询的可能性,因为您总是必须指定最大深度)
我知道,使用 REST / JSON 框架和 JAVA API 是可能的,如下所示:
(我的叶子有属性'leave',我的边缘没有类型->所以_default)
有没有更简单/更好的方法来做到这一点,也许性能更好?
data-modeling - 在图形数据库中表示烹饪食谱
我正试图围绕图形数据库。所以也许有人可以帮助向我解释建立这种关系的正确方法。这主要是从 neo4j 的角度来看,但我认为它适用于大多数图形数据库
我有一个Recipe
节点和Ingredient
节点。节点与Ingredient
节点有ingredient_in
关系Recipe
。该关系将包含多个属性,特别注意的是具有计量单位的金额字段。
我可以想象,在图表的其他地方,会有一个UnitOfMeasure
节点具有 converts_to 与转换率的关系。
我正在努力解决的问题是如何将成分-> 配方关系表示为具有 UnitOfMeasure。来自 RDMS 感觉就像我需要一个介于两者之间的另一个节点,但对于图形数据库来说这感觉是错误的。
java - neo4j - 属性自动索引器不存储值
我遇到的问题是,在将 AutoIndex 索引设置为某个属性后,我可以添加一个键/值对,而索引不会显示它存在。我对 neo4j 比较陌生,所以我对这个类应该做什么的概念可能是错误的。测试代码创建一个无常图形数据库,用它实例化我的数据服务类,然后创建一个用户。实例化数据服务类时,就是将属性添加到 AutoIndex 的时候。您可以在 createUser() 函数内部看到,我已经打印出刚刚创建的用户并且应该在 AutoIndex 中,但它打印的是 null。
这是我正在测试的代码:
这是 DataServiceImpl 中的代码:
这是 UserWrapper 中的代码: