我经常使用Relational DB,并决定冒险使用其他类型的.
这个特别的产品看起来很好,很有希望:http://neo4j.org/
有没有人使用基于图形的数据库?可用性的优点和缺点是什么?
您是否在生产环境中使用过这些产品?提示您使用它们的要求是什么?
是否有可能在MySQL 数据库Neo4j中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得测试的干净设置,例如,使用类似于rmrel
或的shell命令rm
?
我开始使用REST API使用Neo4j进行开发.我看到有两个选项可用于执行复杂查询 - Cypher(Neo4j的查询语言)和Gremlin(通用图形查询/遍历语言).
这就是我想知道的 - 有没有任何查询或操作可以通过使用Gremlin完成,而不能用Cypher完成?或相反亦然?
Cypher对我来说似乎比Gremlin要清楚得多,而且一般来说Neo4j中的人似乎都会选择Cypher.但是 - 如果Cypher与Gremlin相比有限 - 我真的很想提前知道.
我知道这个问题已被许多人
提出我的研究问题,这里提出了一些问题
但毕竟还是无法解决我们的问题,
我们只想删除"ALL"节点和"ALL"关系
假设删除"ALL"可以看到有0个节点0个属性和0个关系
这是我在执行论坛建议删除"ALL"后拍摄的屏幕截图
我的问题还是一样,如何删除neo4j中的所有节点和所有关系
我正在尝试使用cypher创建一个查询,它将"找到"厨师可能缺少的成分,我的图形设置如下:
(ingredient_value)-[:is_part_of]->(ingredient)
Run Code Online (Sandbox Code Playgroud)
(ingredient)
将具有name ="染料颜色"的键/值. (ingredient_value)
可以有一个键值/值="红色"和"是"的一部分(ingredient, name="dye colors")
.
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
Run Code Online (Sandbox Code Playgroud)
我正在使用这个查询获得ingredients
食谱所需的所有,但不是它们的实际值,但我希望只返回ingredients
厨师没有的,而不是每个食谱所需的所有成分.我试过了
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
Run Code Online (Sandbox Code Playgroud)
但这没有任何回报.
这是可以通过cypher/neo4j实现的东西,还是通过返回所有成分并通过它们自行分类来最好地处理这个问题?
额外奖励:还有一种方法可以使用cypher来匹配厨师拥有的所有值以及食谱所需的所有值.到目前为止,我只返回了a返回的所有部分匹配,chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
并自己聚合结果.
目前ulimit -n
显示10000
.我想把它增加到40000
.我编辑了"/etc/sysctl.conf"并放了fs.file-max=40000
.我还编辑/etc/security/limits.conf
并更新了硬和软值.但仍然是ulimit节目10000
.完成所有这些更改后,我重新启动了笔记本电脑.我可以访问root密码.
usr_name@usr_name-lap:/etc$ /sbin/sysctl fs.file-max
fs.file-max = 500000
Run Code Online (Sandbox Code Playgroud)
添加以下行/etc/security/limits.conf
-
* soft nofile 40000
* hard nofile 40000
Run Code Online (Sandbox Code Playgroud)
我还添加了以下内容/etc/pam.d/su
-
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
我已经尝试过在其他论坛上提供的所有可能的方式,但我可以达到最大限度,但10000
不能超过这个限制.可能是什么问题?
我正在进行此更改,因为neo4j
抛出最大打开文件限制达到错误.
我正在使用neo4j作为我的一个项目,有一个节点只有一个属性name
,我想用ID获取该节点,它已经有一个ID,但是当我使用这个代码时
MATCH (s:SKILLS{ID:65110}) return s
它没有返回,继承我的节点
如果查询错误,那么如何使用数字查询它
任何人都可以提供或指出Neo4j和Titan之间的良好比较?我可以看到的一点是规模 - Titan是横向扩展,需要像cassandra这样的基础可扩展数据存储.Neo4j仅适用于HA,并拥有自己的嵌入式数据库.还有其他优点和缺点吗?任何特定的用例.(Titan目前在哪里使用?)
我还有以下链接:http://architects.dzone.com/articles/16-graph-databases-compared,它给出了图形数据库的客观比较,但没有太多关于Neo4j和Titan之间的利弊.
我们可以通过以下查询删除所有节点和关系.
MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r
Run Code Online (Sandbox Code Playgroud)
但是新创建的节点获取内部标识为({last node internal id} + 1).它不会重置为零.
我们怎样才能重置neo4j数据库,比如新创建的节点会将id设为0?
从2.3开始,我们可以删除所有具有关系的节点,
MATCH (n)
DETACH DELETE n
Run Code Online (Sandbox Code Playgroud) 我是Neo4j的新手 - 昨天晚上才开始玩它.
我注意到所有节点都是由在节点创建期间生成的自动递增的整数来标识的 - 总是这样吗?
我的数据集有自然的字符串键,所以我想避免在Neo4j指定的ID和我自己的ID之间进行映射.是否可以使用字符串标识符?