Я сохраняю события потока кликов в базе данных графа, используя следующую структуру ![enter image description here](https://i.stack.imgur.com/cFrE1.png)
Пользователь выполняет несколько событий, и каждое событие имеет преимущество перед предыдущим событием:
- Вершинами являются 'пользователь' и 'событие'
- Края 'выполнены' и 'предыдущие'
Каждое событие имеет свойство с именем referer.Например, если пользователь просматривает страницу www.foobar.com/aaa, то будет событие просмотра страницы, и у него будет ссылка: www.foobar.com/aaa
Теперь я хочу найти возможныепути с домашней страницы с их количеством
Используя приведенный ниже запрос Гремлин, я не могу найти возможные пути, но не могу сгруппировать их, чтобы найти количество каждого пути:
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, доступны только эти операторы Гремлина https://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support
Спасибо