Как найти значение диапазона для значения серьезности, используя запрос gremlin - PullRequest
0 голосов
/ 25 октября 2018

пожалуйста, найдите изображение, здесь вы можете найти то, что мне действительно нужно я хочу значение серьезности группы в следующем диапазоне 0-250,251-500,501-750 и 751-1000.Пожалуйста, кто-нибудь может помочь.

{
"id": "", "model": "", "name": "", "properties": {"functions": {"boolcheck": {"triggers":{"time": {"value": ""}}, "hibit ": {" referenceValue ": {" value ": false}," actualValue ": {" $ ref ":" "}}," конечная точка ": {"value": ""}, "Input": {"input": {"signal": {"$ ref": ""}}, "parameters": {"normalValue": {"value": "False "}}," условия ": {" Состояние ": {" подусловия ": {" Нормальное ": {" описание ": {" значение ":" "}," серьезность ": {" значение ": 1},
"logic": {"value": ""}}, "Alarm": {"description": {"value": ""}, "severity": {"value": 1000}}}}}}}}}, "версия": 2},

1 Ответ

0 голосов
/ 25 октября 2018

Я собираюсь продемонстрировать это с помощью набора данных TrateerPop Grateful Dead:

gremlin> g = TinkerFactory.createGratefulDead().traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]

Базовый подход просто предусматривает использование coalesce() в вашем by() модуляторе для group(), который в основном создает if-затем, как поток управления:

gremlin> g.V().hasLabel('song').
......1>   group().
......2>     by(values('performances').
......3>        coalesce(is(lt(5)).constant("x<5"),
......4>                 is(lt(10)).constant("5=>x<10"),
......5>                 constant(">=10"))).
......6>     by(count())
==>[x<5:319,>=10:227,5=>x<10:38]

Обратите внимание, что by(count()) был просто добавлен для облегчения просмотра результатов.Очевидно, что если вам нужны фактические вершины в группировке, вы можете просто удалить эту строку 6.

Обратите внимание, что более подробное объяснение этого подхода можно найти в Gremlin Recipes .

...