gpt4 book ai didi

database - Neo4j 的参照完整性

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:34 32 4
gpt4 key购买 nike

我正在从事一个项目,该项目使用图形数据库来保存搜索引擎的点击数据。节点可以是搜索词或 url,边包含权重属性,以及搜索导致某人点击该 URL 的次数百分比。

URL 被点击的次数/术语被搜索的次数

我的问题是,当我更新边缘时,百分比将是准确的,但如果我稍后更新搜索词节点并且搜索到的计数发生变化,则边缘将不再具有正确的百分比。 Neo4j 中有没有办法保持参照完整性?像外键类型的东西?

最佳答案

以下信息可能会有帮助。

如果您存储的是点击次数而不是百分比,则无法获得不一致的数据。例如:

(:Term {id: 1, nSearches: 123})-[:HAS_URL {weight: 2, nClicks: 17}]->(:Url {id: 2})

使用此数据模型,您可以在需要时计算百分比。

例如,要查找对特定 URL 的访问百分比最高的 10 个字词:

MATCH (term:Term)-[r:HAS_URL]->(url:Url {id: 2})
RETURN url, term
ORDER BY r.nClicks/term.nSearches DESC
LIMIT 10;

但是请注意,逆向查询(找到特定词条访问百分比最高的 10 个 URL)甚至不需要您计算百分比!这是因为在这种情况下,百分比都具有相同的分母。因此,您可以只使用 nClicks 进行排序:

MATCH (term:Term {id: 1})-[r:HAS_URL]->(url:Url)
RETURN term, url
ORDER BY r.nClicks DESC
LIMIT 10;

关于database - Neo4j 的参照完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951120/

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