标签: graph-databases

是否可以使用C#与OrientDB一起使用?

是否有任何实现,api或OrientDB和C#的例子.我正在研究OrientDB的原因是因为它是我发现的唯一一个Graph和Document的组合.

关于我应该怎么做的任何建议.

我的下一个选择是RavenDB,但我不确定它是否支持连接或链接文档?

有什么想法吗...

c# nosql graph-databases ravendb orientdb

10
推荐指数
3
解决办法
5910
查看次数

如何在数据库中存储图形数据?

我是图表的新手,非常有趣.这个问题可能是noob one,但请提供一些好材料.

我正在尝试创建一个小型社交网络,其中每个用户都是一个节点,并且与他的朋友有无向连接.

它工作正常但现在我想将它存储在数据库中.

如何存储数据?如何存储节点的所有连接节点(指针).

它是更好地删除用户后的存储注销,当他在登录或登录应该在和退出shouldnot有节点上的任何影响,从数据库中读取吗?

我知道它的理论.任何参考都会非常有用.

database graph graph-databases

10
推荐指数
2
解决办法
9220
查看次数

是否有必要从neo4j社区版迁移到企业版和有关在neo4j中创建新数据库的查询

我正在做Neo4j图数据库的研究工作.我使用Neo4j的主要目的是为了搜索目的.现在我正在研究它的社区版本,我已经读过(有疑问)它允许大约1亿个节点.我有一个概念,直到现在它对我有用,但现在我很困惑.

我的模块: - 前 - 这就像用户提出的问题一样,会有问题的标签和问题的级别.节点将创建问题,标签和级别,并与它们之间的关系互连.还将有一些其他模块.因此,图表的大小每天都会增加.

我的问题: -

  1. 我是否正确使用Neo4j进行搜索?
  2. 我们网站的生产模式的社区版限制.
  3. 生产网站是否有必要从社区转向企业版?

目前,根据编码部分我使用neo4j-jdbc驱动程序与cypher queries.as建议我只有SO的知名用户. QUERY - - 是否可以在默认数据库上工作,或者我必须在db的特定大小之后创建一个新数据库?

java neo4j graph-databases

10
推荐指数
1
解决办法
5642
查看次数

代表(并递增)Neo4j中的关系强度

我想表示Neo4j图中节点之间关系的变化强度.

对于静态图,可以通过在关系上设置"strength"属性来轻松完成:

  A --knows--> B
       |
     strength
       |
       3
Run Code Online (Sandbox Code Playgroud)

但是,对于需要随时间更新的图形,存在一个问题,因为增加属性的值不能通过原子方式(通过REST接口)完成,因为需要先写入读取.如果响应于传入的流数据更新图形,则必须递增(而不仅仅是更新).

我需要确保只有一个REST客户端一次读写(外部同步),或者只关注嵌入式API,因此我可以使用内置事务.这可能是可行的但似乎很尴尬.

另一种解决方案可能是记录多个关系,没有任何属性,因此"强度"实际上是关系的数量,即

A knows B
A knows B
A knows B
Run Code Online (Sandbox Code Playgroud)

意味着力量的关系3.

  • 缺点:只能记录整数强度
  • 优点:不需要先读后读
  • 缺点:(可能)需要更多存储空间
  • 缺点:(可能)提取值要慢得多,因为必须提取和计算多个关系

有没有人尝试过这种方法,是否有可能遇到性能问题,特别是在阅读时?

有没有更好的方法来模拟这个?

neo4j graph-databases

9
推荐指数
1
解决办法
2096
查看次数

Titan顶点中心指数与Neo4j标签

当我接近这个时,我试图对这两种技术进行比较,我想知道你们是否已经有过处理任何一种或两种技术的经验?在处理类似的用例时,我主要对性能数字感兴趣.

indexing neo4j nosql graph-databases titan

9
推荐指数
3
解决办法
1596
查看次数

如何停止Neo4j中节点的移动?

我正在使用带有webadmin界面的Neo4j.

当我运行查询时,我以图形方式显示节点和关系.但是,每当我移动节点时,连接到它的其他节点也会移动.我怎样才能阻止这种" 力吸引 "效应呢?

非常感谢你

database relationship nodes neo4j graph-databases

9
推荐指数
1
解决办法
989
查看次数

在Neo4j Cypher中通过ID删除关系的简单方法?

使用MatchWhere可以按ID删除关系.

Match ()-[r]-() Where ID(r)=1 Delete r
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

neo4j nosql graph-databases cypher

9
推荐指数
3
解决办法
7966
查看次数

如何通过Cypher中的属性名称字符串访问和改变节点属性值?

我的目标是在cypher查询访问和改变节点的属性,其中要访问和变异的属性的名称是未知的字符串值.

例如,考虑一个命令:

查找包含两个属性的所有节点,以使第一个属性的名称为小写,后者的名称为前者的大写表示. 然后,使用小写字符串名称将属性的值传播到具有大写名称的属性的值.

特殊情况很简单:

MATCH ( node )
WHERE has(node.age) AND has(node.AGE) AND node.age <> node.AGE
SET node.AGE = node.age
RETURN node;
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到在单个请求中实现一般情况的方法.

具体来说,我无法:

  1. 使用字符串和值访问节点的属性
  2. 使用字符串和值来突变节点的属性

为了清楚起见,我将包括我处理一般情况的尝试.在我未能修改节点属性的情况下,我能够生成一个命令的密码,如果它在后续事务中执行,它将完成我的最终目标.

MERGE ( justToMakeSureOneExists { age: 14, AGE : 140 } ) WITH justToMakeSureOneExists 
MATCH (node) 
WHERE  ANY ( kx IN keys(node) WHERE kx = LOWER(kx) AND ANY ( ky in keys(node) WHERE ky = UPPER(kx) ) )
REMOVE node.name_conflicts // make sure results are current
FOREACH(kx …
Run Code Online (Sandbox Code Playgroud)

reflection neo4j graph-databases cypher

9
推荐指数
1
解决办法
465
查看次数

AttributeError:'图'对象在从Postgress到Neo4j(图数据库)的数据迁移中没有属性'cypher'

我正在努力将数据从postgres手动迁移到Graph Database.

我写了下面的脚本:

import psycopg2
from py2neo import authenticate, Graph

authenticate("localhost:7474", "neo4j", "password")
n4j_graph = Graph("http://localhost:7474/db/data/")


try:
    conn=psycopg2.connect("dbname='db_name' user='user' password='password'")
except:
    print "good bye"

cur = conn.cursor()
try:
    cur.execute("""SELECT * from table_name""")
except:
    print "not found"
rows = cur.fetchall()


for row in rows:
    username = row[4]
    email = row[7]
    s = '''MERGE (u:User { username: "%(username)s"}) MERGE (e:Email { email: "%(email)s"}) CREATE UNIQUE (u)-[:BELONGS_TO]->(e)''' %{"username": username, "email": email}
    print s
    n4j_graph.cypher.execute(s)
Run Code Online (Sandbox Code Playgroud)

错误:

AttributeError:'Graph'对象没有属性'cypher'

这个问题我通过将py2neo更新到版本2.0.8来解决.

pip uninstall py2neo
pip install py2neo==2.0.8 …
Run Code Online (Sandbox Code Playgroud)

python neo4j graph-databases cypher py2neo

9
推荐指数
1
解决办法
1万
查看次数

将n个节点连接到单个节点的最佳方法?

我正在为我正在构建的应用程序建模图形,我有n个用户连接到n个用户,我也有n个帖子可以被n个用户喜欢.所以对于给定的用户,结构看起来像这样, 在此输入图像描述

如果用户喜欢数百个Post节点,它将为节点生成100条边(realtionships),当post为n时,边也将为n.因此,一个用户将连接到n个用户和n个帖子以及n个未来的节点类型.

因此,使用中间节点从而减少给定节点的边缘,这看起来像这样,

在此输入图像描述

如果用户有一个名为Collection的中间节点,它将连接到like,因为这是一个属性图,我可以向中间节点添加一个属性,使其行为类似于来自用户的连接(类似于Likes. username = User.username)

这将类似于这个问题(图形数据库建模:我应该使用一个集合节点来避免许多依赖于节点)

我的想法是

这种中间连接节点的方式可以将垃圾与主节点隔离,从而可以加速自定义算法.

我的问题,

  1. 对此进行扩展的最佳解决方案是什么?
  2. 为什么我要考虑这个解决方案呢?

architecture database-design neo4j graph-databases orientdb

9
推荐指数
2
解决办法
430
查看次数