Я сохраняю события потока кликов в базе данных графиков, используя следующую структуру:
Пользователь выполняет несколько событий, и каждое событие имеет преимущество перед предыдущим:
- Вершины - это пользователь и событие.
- Края бывают "исполненными" и "предыдущими"
У каждого события есть свойство с именем referer. Например, если пользователь просматривает страницу www.foobar.com/aaa, тогда будет событие просмотра страницы, и у него будет ссылка: 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://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support
Спасибо
groupCount
к пути, используя такой синтаксис:groupCount().by(path().by('referer'))
- person Kelvin Lawrence   schedule 25.05.2018