Индекс для запроса ребер между вершинами

Я пытаюсь проверить, есть ли разница между v1 и v2.

g.V(v1).outE(метка).as("e").inV().hasId(v2).select("e")

Поскольку на моем графике слишком много ребер, получение результата становится все медленнее.

Я добавил несколько индексов, но это не помогло. Какой индекс подходит для более быстрого выполнения этого запроса?


person Cory    schedule 10.10.2018    source источник


Ответы (1)


Как обсуждалось по другому вопросу, вы, вероятно, не сможете ускорить это как есть. Вам нужно будет использовать индексы (и фильтры по этим индексам) вокруг outE(), чтобы уменьшить количество ребер, которые вы проходите, чтобы ограничить количество фильтров на inV().

Если вам нечего фильтровать, кроме метки ребра, вы можете рассмотреть возможность денормализации бита и переноса некоторого идентифицирующего значения из вершины в ребро и его индексации. Тогда ваш обход должен стать намного быстрее, потому что это просто:

g.V(v1).outE().has('someId',v2)
person stephen mallette    schedule 10.10.2018