Как увеличить счетчик свойств ребра в графе Гремлин - PullRequest
0 голосов
/ 17 мая 2019

У меня есть граф с ребрами, каждое из которых имеет свойство count, для количества раз, когда осуществляется переход между его двумя вершинами.Я хочу увеличивать значение всякий раз, когда этот переход сделан;Есть ли эффективный способ сделать это?

Я хочу избежать чтения значения, приращения и последующего обновления, потому что приращения могут поступать из нескольких источников, и я хочу избежать сценария состояния гонки.

У меня есть запрос, который выполняет аналогичные действия, но, похоже, работает только для свойств вершин:

g.V('10b56175-b3e5-db7c-6d1f-04f9fe7caba8').property(single, 'count', union(values('count'), constant(1.0)).sum()).valueMap()

Есть ли способ сделать вышеуказанный запрос совместимым со свойствами ребер?

Спасибо!

1 Ответ

0 голосов
/ 17 мая 2019

Отлично работает на ребрах, но для property() нет перегрузки с Cardinality для ребер.

gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
==>[count:1.0,weight:0.4]
gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
==>[count:2.0,weight:0.4]
gremlin> g.E(11).property('count', union(values('count'), constant(1.0)).sum()).valueMap()
==>[count:3.0,weight:0.4]

Я не думаю, что вы можете сделать свой прирост более приятным напрямую через Гремлин. Перед записью всегда будет чтение, если в вашей базе данных графа нет собственного метода для работы счетчиков.

...