我正在尝试编写一个查询来从 Neo4J 数据库中提取数据。假设有五个条件决定我是否想从我的数据库中提取 _____:A、B、C、D 和 E。决定这一点的布尔表达式是:
A && B && (C || D || E)
Run Code Online (Sandbox Code Playgroud)
从网上搜索,我找不到任何关于 Neo4J AND 和 OR 查询遵守的操作顺序的信息(AND 通常在 OR 之前),但从我的观察来看,它们似乎是按顺序执行的。由于我知道没有办法明确定义顺序,也就是使用括号,如何实现 Cypher 查询来满足上面的布尔表达式?
我有一个图表,其中具有以下结构:
节点:
初始条件:
我们必须始终向用户展示所有公众和关注者的讲座,因为我们有完美的查询,没有问题,我们可以得到所需的结果。
MATCH
(o:page{name:'engg'})-[r:ownerof]-(n:lectureseries)-[s:seriesof]-(l:lecture)
WHERE l.privacy='public' or l.privacy='follower'
RETURN DISTINCT n.name as name,n.series_name as title, COUNT(l) AS lecturecount
Run Code Online (Sandbox Code Playgroud)
结果:
name lecturecount
java 2 (lect3, lect4)
Run Code Online (Sandbox Code Playgroud)
问题:现在,我们必须将那些讲座添加到计数中,如果特权讲座通过关系特权连接到用户
我试过这个查询:
OPTIONAL MATCH (o:page {name:'engg'})-[r:ownerof]-(n:lectureseries)-[s:seriesof]-(l:lecture)
WHERE l.privacy='public' or l.privacy='follower'
RETURN DISTINCT n.name as name, COUNT(l) AS lecturecount
UNION
OPTIONAL MATCH (o:page {name:'engg'})-[r:ownerof]-(n:lectureseries)-[s:seriesof]-(l:lecture)-[:privileged]-(u:user {name:'Ann'})
RETURN …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Neo4j 3.1 + 3.1.0.3 中的 apoc.export.graphml 程序将我的数据库导出为 graphml 文件:
call apoc.export.graphml.all("test",{})
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
调用过程失败
apoc.export.graphml.all:由:java.lang.RuntimeException:未启用从文件导入,请在您的neo4j.conf中设置apoc.import.file.enabled=true
我已经编辑了我的 neo4j.conf 文件来添加
apoc.import.file.enabled=true
在文档末尾,但我仍然收到相同的错误消息。
我究竟做错了什么?
谢谢你的帮助。
根据Nodes() 函数返回关系?Neo4j 浏览器中有一个 AUTO-COMPLETE 开关。我正在使用没有这个的 3.2.0。是否有等效的 UI 元素?
我正在尝试 neo4j-jdbc 并想知道 Preparedstatement 是否真的在密码执行性能方面带来好处,因为底层机制不再是我们以前知道的 RDMS。有什么建议吗?
有没有办法只获取 Cypher 查询中存在的节点和关系,而不获取节点之间的其他关系?
我们知道节点之间可以有许多不同类型的关系。但是,在分析过程中,我们只想查看特定类型的关系。剩下的就是杂乱。以电影数据库为例,让我们使用以下查询。
match (p:Person)-[:ACTED_IN]->(m:Movie)
where p.name='Tom Hanks'
return p, m;
Run Code Online (Sandbox Code Playgroud)
在这个查询中,我们得到了 Tom Hanks 和他演过的所有电影的漂亮图表。然而,我们也得到[:DIRECTED]了电影“你做的那件事”的关系,这很有趣,但取决于你正在分析的内容,它会让人分心。我只想显示[:ACTED_IN]关系。使用下一个查询
match (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person)
where p.name='Tom Hanks'
return p, m, d;
Run Code Online (Sandbox Code Playgroud)
我们对每部电影的导演都有很好的了解。不过,在这里,屏幕上杂乱无章的[:KNOWS]关系导致分心。
我知道有几个数据可视化产品可以做到这一点,但我们处于 POC 中,我们需要先获取数据库。如果我还必须添加数据可视化工具,那将更难销售。更难,但并非不可能出售。
目前,我使用的是 Neo4j 3.2,但很快就会升级到 3.3 进行实际演示。
我正在尝试在运行 neo4j 桌面的 Windows 上安装 neo4j-shell-tools。解压后把文件夹放到LIB目录下重启,好像没有加载工具?
Invalid input 'm': expected 'n/N' (line 1, column 2 (offset: 1))
"import-graphml"
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我试图在零售商和零售商销售的产品之间建立关系。例如,如果商店“xyz”销售产品 item1、item2 和 item3,我想在它们之间创建从商店到产品的关系“SELLS_PRODUCTS”。
这是我的示例代码:Retailers 是零售商表,Products 是另一个表,其中包含关系所需的产品名称、商店名称等常见详细信息。
MATCH (r:Retailers{Name: "Prestige Liquor Store"})
WITH r
MATCH (p:Products)
WHERE r.ProductproductName = p.ProductName
CREATE UNIQUE (r)-[:SELLS_PRODUCTS]->(p)
Run Code Online (Sandbox Code Playgroud) 我根本无法弄清楚neo4j桌面应用程序在哪里安装数据......我不想完全删除这个bugger,因为将吸盘连接到节点应用程序完全是一场噩梦......叹息!
我正在尝试创建一个具有包含项目数组/列表的属性的实体。我不明白我该怎么做:
任何线索将不胜感激。
这有助于解决我面临的多对一关系问题。