是否可以在neo4j上运行不区分大小写的cypher查询?
试试这个:http://console.neo4j.org/
当我输入这个:
start n=node(*)
match n-[]->m
where (m.name="Neo")
return m
Run Code Online (Sandbox Code Playgroud)
它返回一行.但是当我输入这个:
start n=node(*)
match n-[]->m
where (m.name="neo")
return m
Run Code Online (Sandbox Code Playgroud)
它不会返回任何东西; 因为名称保存为"Neo".是否有一种简单的方法来运行不区分大小写的查询?
看看Neo4j,320亿的关系限制令我担心(想象有4000万用户上传500张照片,有500个朋友,发表500评论等等,在你知道之前你已经超过320亿)..所以我有一些担忧和必须确保我在使用哪个数据库上做出最佳选择.
不是在寻找主观答案,也不是在这里辩论 - 即.哪一个更好等等-而是因为我打赌什么图形数据库是使用一个启动的未来,我需要知道的风险不同的数据库目前,如没有超过32billion关系Neo4j的.
现在,有几家公司将他们的图形数据库称为"领先的图形数据库"..但让我们看看过去的炒作 - 谁拥有最多的资金支持?哪个db享有大量的社区支持?哪一个拥有坚实的公司支持商业支持?
哪一个最有可能足够成熟所以如果你想,你可以轻松创建Facebook?
在技术特性或熟悉度上选择图形数据库很容易 - 但我正在寻找更多 - 我想确保公司的几年仍然存在.我想确保我不会选择基于炒作的Neo4j以及它目前(暂时?)的势头......
还有什么其他图表可以与Neo4gj竞争,以创建一个类似于Facebook的完整的社交网络(再次,不是寻找更好,只是寻找一个坚实的竞争对手).
请不要让这变成主观的Neo vs Dex辩论 - 只需要事实和实体答案..
我正在寻找类似于MySQL(SHOW INDEXES)的东西.我能够在Python中使用py2neo获取索引列表
graphDB = neo4j.GraphDatabaseService()
indexes = graphDB.get_indexes(neo4j.Node)
print(format(indexes))
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有办法在Cypher做类似的事情.
我使用的版本是neo4j-enterprise-2.2.0-M02
我的问题是:如何在后端或浏览器中配置用户(如添加新用户,更改密码等)而不是REST API?我可以通过neo4j-shell来做吗?想象一下我是一名DBA,通过REST API做这件事并不是很方便.
任何帮助将不胜感激!
这是一个有点抽象和一般性的问题.我对使用大量内部引用(类似图形)和许多属性(类似JSON)来保存非结构化数据的不同方法的固有(以及特定于实现)属性感兴趣.
由于图形是树的超集,因此您可以将图形DB(例如Neo4j)视为文档DB的超集(例如MongoDB).也就是说,图形DB提供了文档DB的所有功能,另外还允许循环或具有本机指针类型,因此您不必手动取消引用外键/ ID.那么,当您添加更多对象/资源的引用时,您会遇到一些转折点,您最好使用图形数据库,但之前的文档存储更好吗?文档数据库(存储空间,性能?)是否有优势?或者您是否应该总是使用图形数据库以防将来需要更多引用?
同样,图形DB和三重存储(例如RDF存储)如何比较?图形DB(节点和边缘具有属性)似乎是简单三重存储的超集.Neo4j说,对于什么问题(如果有的话)执行三重存储实际上更好?(RDF存储的一个优点是有一种标准化的查询语言--SPARQL - 尽管似乎有很多人不喜欢SPARQL,因此称其为劣势.)
我想我的问题是:图形模型(带有属性)似乎能够整齐地表达各种数据,当你进入现实时会有什么收获?我认为图形数据库的捕获是性能,因此我希望看到一些数字或经验法则,说明在加载,查询和修改数据以及内存和持久存储要求时会出现什么样的减速(与文档相比)和三联商店).那么水平可扩展性呢?我觉得那里的比赛场地非常平坦.
您是否认为具有可表达性的图形可能成为没有超大数据的项目的新默认存储模型,或者我们注定了十年的Polyglot Persistence与RDBMS,JSON存储和Graph DB彼此生活在一起必须与更多的胶水代码集成?
我知道我可以使用Cypher在单个属性上创建一个唯一约束CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE
.但我想知道是否有可能创建一个涉及多个属性的唯一约束.如果是这样,怎么样?
在Neo4j的Cypher查询语言中,一个MATCH子句紧跟另一个后面的区别是这样的:
MATCH (d:Document{document_ID:2})
MATCH (d)--(s:Sentence)
RETURN d,s
Run Code Online (Sandbox Code Playgroud)
与同一MATCH条款中的逗号分隔模式相比?例如:
MATCH (d:Document{document_ID:2}),(d)--(s:Sentence)
RETURN d,s
Run Code Online (Sandbox Code Playgroud)
在这个简单的例子中,结果是一样的.但是有没有"陷阱"?
我想知道在持久存储中存储图形的最佳方法是什么,以供以后分析,搜索,聚类等.
我看到neo4j是一个选项,我很好奇是否还有其他图形数据库可用.有没有人对大型社交网络如何存储基于图形的数据(或其他需要存储图形模型的网站,例如RDF)有任何见解.
那些像Cassandra或MySQL这样的选项呢?
我正在考虑将Neo4j集成到我正在构建的Clojure系统中.我被问到的第一个问题是为什么我没有使用Datomic.有没有人对此有一个好的答案?我听说过有关Datomic的视频,但我对图形数据库知之甚少,不知道Neo4j和Datomic之间的区别,它对我有什么不同?