Tomaz

今天,我们带来使用 查询 Neo4j 数据库的分享,让 学习图形模式并帮助构建 查询的简单方法。完整阅读预计需要 8 分钟。

风靡全球,或许大量人工智能生成的内容登陆互联网只是时间问题。我们一直在尝试用 生成 查询,下面是具体的步骤,希望更多人可以来尝试它!

设置 Neo4j Aura

我们将使用Neo4j Aura,它为这个实验提供了带有预填充数据的 Neo4j 数据库的免费云实例。登录后,单击新实例,然后选择基于图形的建议数据集。

选择基于图形的建议数据集

数据库实例启动后,单击查询按钮打开 Neo4j 浏览器。

设置

打开 网站,按照注册说明进行操作。完成后,会出现 用户界面。

用户界面

定义图形模式

在使用 和属性图模型方面有一些经验。但是它确实不知道图表的模式。因此,为避免 猜测和幻觉图形的节点标签和属性,必须向它提供信息。

告知 有关节点标签和关系类型的最好方法是使用以下 APOC 程序:

结果:

Apoc模式结果

假设在 Neo4j 浏览器中运行上述 APOC 模式过程,只需复制响应的文本版本并将其粘贴到 中,并附上其他信息,说明这是 Neo4j 数据库的模式定义。

我有一个具有以下模式的 Neo4j 数据库:

— APOC 模式过程的结果—

我们得到了以下回复,但不同处决的反应可能差异很大。接下来,需要向其提供有关节点和关系属性的信息,因为这在 APOC 模式过程中不可用。可以使用以下 查询按节点和关系类型提取所有属性键。

可以通过告知其正在提供有关节点和关系类型的信息,将此信息输入 。

提供节点和关系属性密钥

使用 生成 查询

现在,我们可以继续测试 根据各种提示生成 查询的程度。需要通知 ,它将生成 查询。

我们发现:需要在初始提示中提供的是,它不应该对之前提示的查询做出任何假设,否则它会尝试将之前无关提示的信息合并到新生成的 查询中。

现在,你将根据提示生成 查询。除非明确说明,否则不要发布任何解释。也不要对上下文做任何假设。只看给定提示的上下文,不要假设之前提示的任何其他内容。

需要明确要求它不要在之前的提示上假设任何事情,因为起初,它假设了我们的电影偏好,因为它经常被问起基努·里维斯和喜剧。

忘记或不忘记,生成的查询看起来基本相同。唯一的区别是,在被要求做成推荐时。此外,无论是否要求它忘记之前的提示,图形模式遗忘也会发生在这两种情况下。

我们可以从一些简单的事情开始。

提供的查询按预期工作。我们现在可以尝试一些更复杂的东西。

同样,查询正常工作。 非常擅长基本的图形模式匹配和聚合。大多数时候,它还会选择正确的节点属性。然而,它在所谓的存在查询方面存在问题,如果模式存在,则可能返回 true,如果模式不匹配,则可能返回 false。

π数据库查询_数据库如何查询库_chatgpt 数据库查询

它似乎更喜欢 MATCH 子句,并且没有掌握 MATCH 或其他允许空值的方法。然而,在一些帮助下,它设法完成了工作。

唯一的问题是它忘记了基努·里维斯。

因此,它只是检查演员是否出现在《黑客帝国》中。

感觉就像橡皮鸭编程,与一个很有创造力的人,但几乎没有受到关注,因为查询再次忘记了 MATCH。也许 只是患有无法治愈的多动症。如果想让它生成允许空值或0值的查询,它肯定需要一些微调。

接下来,我们可以检查 的创意。我们可以要求它找到最受欢迎的喜剧,而不具体说明流行是什么意思。

生成的查询是未完成的。 可以从中学习很多电影推荐教程。此外,它正确地假设 属性具有某种人气评级值。

我们可以要求它在数据库中包括用户的评级。

起初,我印象深刻。尽管它没有将 IMDB 评级和用户评级结合起来,但它为用户评级提供了一个良好的开端。然而,它忘记了流派是一个单独的节点,而不是一个节点属性。

虽然更正后的 查询现在正确地将类型识别为单独的节点,但出于某种原因,它决定现在应该将受欢迎程度定义为 IMDB 投票数。

因此,即使你获得生成的 查询运行良好,也不能保证你下次会获得相同的 语句,即使它声称一致性很重要。

让我们尝试另一个提示,欣赏一些 的创造力。

尽管它抱怨它不能提供好的建议,但它仍然提供了一个很好的起点。让我们看看我们是否可以尝试改进建议。

似乎对使用联合演员的平均电影收视率,然后向在电影中与基努·里维斯共同主演的电影提供最高收视率的演员作为推荐的想法。

唯一的问题是上述查询不起作用。同样, 幻觉节点属性 而不是 。此外,它在第四行收集电影评分,然后尝试平均。

不幸的是, 不允许用 avg() 运算符平均数组。因此,我们要么需要删除 ,要么使用 APOC。

现在, 中的 ADHD 决定我们应该采用与开始时相同的基本建议。但是,如果使用的是 Neo4j v5,则存在另一个问题。

v5 中已弃用几种 语法,Chat GPT 没有意识到这一点,需要使用最新的 语法进行训练。在上面的示例中,size() 运算符在 Neo4j v5 中不再使用计数图模式。

最后,我们想试试 是否是图形数据科学家。

默认情况下, 希望使用已弃用的图形算法库。纠正它以使用图形数据科学库可以稍微改善查询,但不是完全改善。

自 2.0 版本以来,GDS 库不支持匿名图表。因此,需要单独投影内存图,然后在上面运行 。

这是一些好主意,但同样,语法不起作用。然而,它可以作为一个很好的起点。

总 结

显示出用作查询 Neo4j 数据库的接口的巨大潜力。它与基本的图形匹配和聚合配合得很好。虽然它有时会忘记确切的属性名称或图形模式,但如果给它一点帮助,就能更好的记住它们。

但是,如果想要生成复杂的查询时,查询很可能是有效或无效的。虽然它可能会解决我们明确提到的错误,但它可能会改变其他变量或引入新的错误。一致性不是 最好的部分。此外,它没有接受过 Neo4j v5 或图形数据科学库中使用的较新的 语法的训练。因此,需要额外的微调才能使其正确。

总的来说,我觉得 在当前状态下可以用来生成简单的查询和模式。对于更复杂的任务,如提供建议,它可用于暗示 语法或如何解决问题,但现阶段不建议依赖它来提供有效的查询。

Neo4j 产品分为社区版和企业版,具体需求可随时与我们联系。

#Neo4j咨询

电话: