Во время перехода с TP2 0.54 на TP3 titan 1.0 / Tinkerpop 3.01
Я пытаюсь создать запрос gremlin, который делает «логическое ИЛИ» с текстом предиката между свойствами в разных индексах вершин
Что-то вроде:
------------------- ПРЕДНАЗНАЧЕННЫЕ ИНДЕКСЫ ES: ------------------
tg = TitanFactory.open('../conf/titan-cassandra-es.properties')
tm = tg.openManagement();
g=tg.traversal();
PropertyKey pNodeType = createPropertyKey(tm, "nodeType", String.class, Cardinality.SINGLE);
PropertyKey userContent = createPropertyKey(tm, "storyContent", String.class, Cardinality.SINGLE);
PropertyKey storyContent = createPropertyKey(tm, "userContent", String.class, Cardinality.SINGLE);
//"storyContent" : is elasticsearch backend index - mixed
tm.buildIndex(indexName, Vertex.class).addKey(storyContent, Mapping.TEXTSTRING.asParameter()).ib.addKey(pNodeType, Mapping.TEXTSTRING.asParameter()).buildMixedIndex("search");
//"userContent" : is elasticsearch backend index - mixed
tm.buildIndex(indexName, Vertex.class).addKey(userContent, Mapping.TEXTSTRING.asParameter()).ib.addKey(pNodeType, Mapping.TEXTSTRING.asParameter()).buildMixedIndex("search");
v1= g.addVertex()
v1.property("nodeType","USER")
v1.property("userContent" , "dccsdsadas")
v2= g.addVertex()
v2.property("nodeType","STORY")
v2.property("storyContent" , "abdsds")
v3= g.addVertex()
v3.property("nodeType","STORY")
v3.property("storyContent" , "xxxx")
v4= g.addVertex()
v4.property("nodeType","STORY")
v4.property("storyContent" , "abdsds") , etc'...
------------------- ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: -----------
Я хочу вернуть все вершины со свойством "storyContent", текст совпадения содержит префикс, ИЛИ все вершины со свойством "userContent", соответствующим его регистру.
в этом случае верните v1 и v2, потому что v3 не совпадает, а v4 дублируется, поэтому должен игнорироваться шагом дедупликации
g.V().has("storyContent", textContainsPrefix("ab")) "OR" has("userContent", textContainsPrefix("dc"))
или, может быть :
g.V().or(_().has('storyContent', textContainsPrefix("abc")), _().has('userContent', textContainsPrefix("dcc")))
PS,
Я думал использовать шаг TP3 OR с дедупликацией, но гремлин выдает ошибку ...
Спасибо за любую помощь
Виталий
or()
шаг? Как выглядела ваша попытка сor()
? tinkerpop.apache.org/docs/3.0.1-incubating/# или-шаг - person Jason Plurad   schedule 14.04.2016