我想知道在持久存储中存储图形的最佳方法是什么,以供以后分析,搜索,聚类等.
我看到neo4j是一个选项,我很好奇是否还有其他图形数据库可用.有没有人对大型社交网络如何存储基于图形的数据(或其他需要存储图形模型的网站,例如RDF)有任何见解.
那些像Cassandra或MySQL这样的选项呢?
我试图将有向图保存到数据库中以便进一步处理和查询.neo4j似乎符合我的需求.但是,我似乎没有找到关于以下内容的好教程:
我希望能够手动和自动(即使用程序)执行它们.官方手册一直在谈论像Maven,Index,REST API等等,基本上我现在根本不关心的事情.
那么关于neo4j的任何好的动手教程?或者您认为对于有简单需求的初学者(即商店图和查询图)有用的任何其他图形数据库?
如何删除neo4j中的标签?实际上我删除了所有节点和关系,然后我重新创建了电影数据库,仍然是我之前创建的标签出现在web界面上.我还试图为数据库使用不同的位置,甚至在卸载并重新安装后仍然会出现标签.为什么?标签存放在哪里?卸载程序后,数据库文件夹和appdata文件夹被删除.
如何重现?安装neo4j - >使用电影数据库示例 - > create(l:SomeLabel {name:"A freaky label"}) - >删除节点 - >停止neo,创建新文件夹 - >启动neo - >创建电影shema - > match(n)return(n) - >出现SomeLabel,即使您更改了文件夹或进行卸载/安装.
有没有办法删除标签,即使它没有节点?
我想弄清楚MERGE和CREATE UNIQUE之间有什么区别.我知道这些功能:
我能够创建节点,如果不存在模式.
MERGE (n { name:"X" }) RETURN n;
Run Code Online (Sandbox Code Playgroud)
这创建节点"n",其属性名称为空节点"m",关系为RELATED.
MERGE (n { name:"X" })-[:RELATED]->(m) RETURN n, m;
Run Code Online (Sandbox Code Playgroud)
我无法像这样创建节点.
CREATE UNIQUE (n { name:"X" }) RETURN n;
Run Code Online (Sandbox Code Playgroud)
如果存在节点"n",则创建唯一使空节点"m"和关系RELATED.
MATCH (n { name: 'X' }) CREATE UNIQUE (n)-[:RELATED]->(m) RETURN n, m;
Run Code Online (Sandbox Code Playgroud)
如果存在此模式,则不会创建任何内容,只返回模式.
从我的角度来看,我看到MERGE和CREATE UNIQUE是完全相同的查询,但是使用CREATE UNIQUE,你无法在关系中创建起始节点.如果有人能解释这个问题并比较这些问题,我将不胜感激.
在SQL中:
Delete From Person Where ID = 1;
在Cypher中,按ID删除节点的脚本是什么?
(已编辑:ID = Neo4j的内部节点ID)
对图表数据库有疑问,有人能帮帮我吗?我在mysql中处理了大量关于设备,接入点,无线网桥等路由器每天发送的5M记录的数据.数据通常是健康数据,gps等......这些是车辆上的设备.如何处理图数据库中基于时间的数据?有没有人将neo4j用于基于时间的数据?知道如何查询间隔以及如何进行建模会很棒.
我想我每次都可以创建一个节点,每次收到属性设置的数据,比如改变gps,健康?这将是一个基于时间的图表 - 听起来不错吗?好吧5M行mysql表现不好 - 但随着路由器获得新功能,新数据通过,我需要再次创建新模型,这不是坏事但不是很好.我想要一些半结构化的东西,并且使得与用户被踢出的原因相关的不同之处是因为与路由器相关联的接入点已关闭.我通常的疑问是提醒警报说设备中的一个已经关闭或者吞吐量降低等等.neo4j会帮助我比mysql更好地结合这些关系吗?
很想知道你们的想法,任何评论和想法都赞赏.
可以说,我有一个用户:
CREATE (n { name: 'Tamil' })
Run Code Online (Sandbox Code Playgroud)
和2个角色:
CREATE (n { name: 'developer' } )
CREATE (n { name: 'tester' } )
Run Code Online (Sandbox Code Playgroud)
然后,我在用户和两个角色中的每一个之间建立关系.
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'developer'
CREATE (a)-[r:HAS_ROLE]->(b)
RETURN r
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'tester'
CREATE (a)-[r:HAS_ROLE]->(b)
RETURN r
Run Code Online (Sandbox Code Playgroud)
现在,我想从用户中删除测试者角色关系.我试过了:
CYPHER 1.9 START a = node:node_auto_index('name:Tamil')
MATCH a-[r:HAS_ROLE]-()
RETURN r
Run Code Online (Sandbox Code Playgroud)
但是,它返回了两种关系.我知道我可以通过关系附加财产.但是,再一次,我不知道密码的语法.
我是Neo4j的新手.任何建议都会很棒!
谢谢!
我正在研究Neo4j的可扩展性,并阅读David Montag在2013年1月撰写的文档.
关于分片方面,他说2014年的第一个版本将带来第一个解决方案.
有没有人知道它是否已完成或其状态如果不是?
谢谢!
我试图从neo4j浏览器运行查询来重现我的neo4j-javascript-driver客户端的结果.
在neo4j中定义查询参数的语法是什么?
我最近参加了在纽约举办的neo4j培训课程,培训师(David Fauth)做到了这一点,遗憾的是,我没有记录下来,因为我认为我可以在网上阅读这篇文章......但没有成功.
我希望通过多种关系类型在实体之间进行匹配.
是否可以说以下查询:
match (Yoav:Person{name:"Yoav"})-[:liked & watched & ... ]->(movie:Movie) return movie
Run Code Online (Sandbox Code Playgroud)
我需要所有关系类型之间的"和"; Yova喜欢看电影.
neo4j ×10
cypher ×5
database ×2
graph ×1
merge ×1
nosql ×1
persistent ×1
scalability ×1
storage ×1