Получение совпадений на нескольких ярлыках в Amazon Neptune с Gremlin

Реализация Amazon Neptune Gremlin позволяет использовать несколько меток на вершинах (см. https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-differences.html).

Но как запросить вершины по нескольким меткам?

ГВ ().hasLabel('label1').hasLabel('label2')

было то, что я ожидал, но, похоже, не сработал.

2 ответа

Решение

В качестве временной меры вы можете попробовать сделать hasLabel('label1').fold().unfold().hasLabel('label2')

Учитывая семантику Гремлин, это:

g.V().hasLabel('label1').hasLabel('label2')

означает, что вы выполняете операцию "и", поэтому вершины должны иметь "label1" и "label2". Если вам нужна операция "или", в которой вершины могут иметь метку "label1" или "label2", то вам, вероятно, нужно изменить это на:

g.V().or(hasLabel('label1'),hasLabel('label2'))

Не уверен, решит ли это вашу проблему с Нептуном в том, что вы хотите запросить, но именно этого ожидает Гремлин.

Другие вопросы по тегам