При индексации выдается исключение во время добавления вершины - PullRequest
0 голосов
/ 10 ноября 2018

Индекс построен хорошо;
Здесь нет исключений, и GraphManagement успешно справился;

graphManagement.buildIndex("uidIndex", Vertex.class). 
     addKey(graphManagement.getPropertyKey("uid_code")).
     buildCompositeIndex();

Я настроил query.force-index = true
Но когда я пытаюсь добавить некоторую вершину, используя свойствоKey 'uid_code', код выглядит следующим образом:

Vertex vertex = g.V().addV(label).
       property(propertyKey, propertyValue).
       next(); 

Исключение:

org.janusgraph.core.JanusGraphException: Could not find a suitable index to answer graph query and graph scans are disabled: [()]:VERTEX
    at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$6.execute(StandardJanusGraphTx.java:1283)
    at org.janusgraph.graphdb.transaction.StandardJanusGraphTx$6.execute(StandardJanusGraphTx.java:1150)
    at org.janusgraph.graphdb.query.QueryProcessor$LimitAdjustingIterator.getNewIterator(QueryProcessor.java:209)
    at org.janusgraph.graphdb.query.LimitAdjustingIterator.hasNext(LimitAdjustingIterator.java:68)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:650)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at org.janusgraph.graphdb.query.ResultSetIterator.nextInternal(ResultSetIterator.java:54)
    at org.janusgraph.graphdb.query.ResultSetIterator.<init>(ResultSetIterator.java:44)
    at org.janusgraph.graphdb.query.QueryProcessor.iterator(QueryProcessor.java:68)
    at com.google.common.collect.Iterables$7.iterator(Iterables.java:613)
    at org.janusgraph.graphdb.tinkerpop.optimize.JanusGraphStep.lambda$new$0(JanusGraphStep.java:71)
    at org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep.processNextStart(GraphStep.java:142)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
    at org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep.processNextStart(MapStep.java:36)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128)
    at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38)
    at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:200)
    at dataTrans.KfkMsgParser.createMerge(KfkMsgParser.java:742)   

Может кто-нибудь сказатьмне забыть что-нибудь в документе?
или
что я могу сделать, чтобы решить эту проблему?

Ответы [ 2 ]

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

Чтобы добавить одну вершину, вы должны вызвать addV() непосредственно в источнике обхода g:

 String propertyKey = "uid_code";
 Vertex vertex = g.addV(label).
     property(propertyKey, propertyValue).
     next();

Когда вы начинаете запрос с g.V().addV(label)..., обход пытается сканировать все вершиныс g.V() и, таким образом, генерируется исключение.

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

Ваш индекс должен быть включен для использования.

graph.tx().rollback(); //Never create new indexes while a transaction is active
JanusGraphManagement graphManagement = graph.openManagement();
graphManagement.buildIndex("uidIndex", Vertex.class). 
     addKey(graphManagement.getPropertyKey("uid_code")).
     buildCompositeIndex();
graphManagement.commit();

//Wait for the index to become available
ManagementSystem.awaitGraphIndexStatus(graph, "uidIndex").call();

graphManagement = graph.openManagement();
// Use REINDEX to reindex old data and enable the index
// Use ENABLE to simply enable the index
graphManagement.updateIndex(graphManagement.getGraphIndex("uidIndex"), SchemaAction.REINDEX).get();
graphManagement.commit();

Вы можете проверить жизненный цикл индекса здесь: https://github.com/JanusGraph/janusgraph/wiki/Indexing

Вот документация индекса: https://docs.janusgraph.org/latest/indexes.html

...