gpt4 book ai didi

azure - 从图表中查找路径,然后使用 Gremlin 计算路径在 Azure Cosmos DB 中出现的次数

转载 作者:行者123 更新时间:2023-12-03 02:59:30 25 4
gpt4 key购买 nike

我使用以下结构将点击流事件存储在图形数据库中 enter image description here

用户执行多个事件,每个事件都比前一个事件有优势:

  • 顶点是“用户”和“事件”
  • 边是“已执行”和“前一个”

每个事件都有一个名为referer 的属性。例如,如果用户查看页面 www.foobar.com/aaa然后会有一个页面浏览事件,它会有referer:www.foobar.com/aaa

现在我想从主页找到可能的路径及其数量

使用下面的 Gremlin 查询,我能够找到可能的路径,但无法将它们分组以查找每个路径的计数:

g.V().hasLabel('event').has('referer','https://www.foobar.com/').in('previous').in('previous').path().by('referer')

输出:

 [
{
"labels": [
[],
[],
[]
],
"objects": [
"https://www.foobar.com/",
"https://www.foobar.com/aaa",
"https://www.foobar.com/bbb"
]
},
{
"labels": [
[],
[],
[]
],
"objects": [
"https://www.foobar.com/",
"https://www.foobar.com/aaa",
"https://www.foobar.com/bbb"
]
},
{
"labels": [
[],
[],
[]
],
"objects": [
"https://www.foobar.com/",
"https://www.foobar.com/ccc",
"https://www.foobar.com/ddd"
]
}
]

我想要这样的输出:

[[
"https://www.foobar.com/",
"https://www.foobar.com/aaa",
"https://www.foobar.com/bbb"
]:2,
[
"https://www.foobar.com/",
"https://www.foobar.com/ccc",
"https://www.foobar.com/ddd"
]:1]

由于我使用的是 azure cosmos graph db,因此只有这些 gremlin 运算符可用 https://learn.microsoft.com/en-us/azure/cosmos-db/gremlin-support
谢谢

最佳答案

您可以使用如下语法将 groupCount 应用于 path:

groupCount().by(path().by('referer'))

因此您可以将查询重写为:

g.V().hasLabel('event').
has('referer','https://www.foobar.com/').
in('previous').
in('previous').
groupCount().by(path().by('referer'))

希望这有帮助,

干杯开尔文

关于azure - 从图表中查找路径,然后使用 Gremlin 计算路径在 Azure Cosmos DB 中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50520952/

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