gpt4 book ai didi

neo4j - 在密码中查询模板?如何避免重蹈覆辙

转载 作者:行者123 更新时间:2023-12-02 01:50:52 24 4
gpt4 key购买 nike

我的小组有很多查询往往涉及一类关系类型。所以我们倾向于写很多像这样的重复查询:

match (n:Provenance)-[r:`input to`|triggered|contributed|generated]->(m:Provenance)
where (...etc...)
return n, r, m

问题与一组不同关系类型的重复有关。实际上,我们正在寻找一组关系类型中的任何关系。有没有办法将一堆关系类型枚举到一个集合中(“foo 关系”),然后将其用作变量以避免在许多查询中一遍又一遍地重复自己?当我们添加新的关系类型时,这种对关系类型的重复查询往往会产生问题;现在,通过代码库分发的许多查询都需要更新。

枚举所有可能的关系在单个查询中并不是什么大问题,但是当分布在数十个(或数百个)查询中时,它开始变得难以管理和更新。这里推荐的解决方案模式是什么?查询模板?

最佳答案

这目前不可能作为内置功能,但它似乎是一个有趣的功能。我鼓励您将其发布到此处的想法 trello 板上:

https://trello.com/b/2zFtvDnV/public-idea-board

也许建议允许关系类型的参数:

MATCH (n)-[r:{types}]->(p)

当然,这使得查询引擎更难提前优化查询。关系类型层次结构可以工作,但除非绝对必要,否则我们对向模型引入新的抽象非常犹豫。尽管如此,我们还是非常欢迎提出改进建议!

目前,是的,像您建议的模板可以解决它。理想情况下,您会将查询发送到 neo,其中包含您感兴趣的所有关系类型,并将其他项目参数化,以实现最佳规划。因此,要做到这一点,您需要在发送查询之前在您这边进行一些字符串替换,以将一长串 reltypes 注入(inject)到查询中。

关于neo4j - 在密码中查询模板?如何避免重蹈覆辙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com