gremlin filter () в запросе также применяется к PROPERTY - PullRequest
0 голосов
/ 27 ноября 2018

Сервер TinkerPop Gremlin: 3.3.3 Удаленный клиент: v 3.3.3 Похоже, что Groovy замыкание применяется и к имени свойства в запросе gremlin.Это означает, что запрос отвечает всеми вершинами, которые соответствуют только метке.Когда я применяю ниже запрос;Я получаю

gremlin> client.submit ("gV (). HasLabel ('XYZ'). Filter {it.get (). Property ('SCOPE'). ToString (). Содержит ('SCOPE')})) ==> result {object = v [352] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==> result {object = v [325]class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==> result {object = v [267] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==>result {object = v [306] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==> result {object = v [371] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==> result {object = v [248] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex} ==> result {object = v [287] class = org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex}

1 Ответ

0 голосов
/ 27 ноября 2018

Мне не ясно, чего вы пытаетесь достичь, но если "SCOPE" является ключом свойства во всех этих возвращаемых вершинах, то filter() работает как положено.Рассмотрим ваш обход в контексте "современного" графа игрушек:

gremlin> g.V().hasLabel('person').map{it.get().property('name').toString()}
==>vp[name->marko]
==>vp[name->vadas]
==>vp[name->josh]
==>vp[name->peter]
gremlin> g.V().hasLabel('person').filter{it.get().property('name').toString().contains('name')}
==>v[1]
==>v[2]
==>v[4]
==>v[6]

Свойство "name" доступно в качестве ключа во всех этих вершинах, поэтому оно позволяет всем вершинам "person" после filter().

...