Использование следующих команд для использования индексов для лучшей производительности для запроса узла в titan db.Ошибка при попытке использовать индексы в титановом графе db
TitanManagement mgmt = graph.openManagement();
PropertyKey buyer = mgmt.makePropertyKey("buyer").dataType(String.class).cardinality(Cardinality.SINGLE).make();
TitanGraphIndex buyeri = mgmt.buildIndex("buyer", Vertex.class).addKey(buyer).buildCompositeIndex();
mgmt.setConsistency(buyeri, ConsistencyModifier.LOCK);
g.V().has("buyer","buyer", "buyer10").out("order_is").values("order").fill(list);
Использование титана 1.0.0, Gremlin язык запросов, в то время выполнения этого запроса он выдает ошибку:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
at java.lang.Thread.run(Thread.java:745)Caused by: com.thinkaurelius.titan.core.SchemaViolationException: Adding this property for key [~T$SchemaName] and value [rtbuyer] violates a uniqueness constraint [SystemIndex#~T$SchemaName]
at com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx.addProperty(StandardTitanTx.java:780)
at com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx.addProperty(StandardTitanTx.java:706)
at com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx.makeSchemaVertex(StandardTitanTx.java:836)
at com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx.makePropertyKey(StandardTitanTx.java:856)
at com.thinkaurelius.titan.graphdb.types.StandardPropertyKeyMaker.make(StandardPropertyKeyMaker.java:86)
at pluradj.titan.tinkerpop3.example.JavaExample2.main(JavaExample2.java:56)
Updates, как указано ниже в @jason Plurad ответить
Я использовал
Используя нижеследующий код для индексации покупателя, выполните поиск вершин faste r, но не знаю, почему это не индексирование, не работает, может ли это исправить это.
я прочитал документацию титаном дб индексации части, но я предполагаю, что это не работает ..
ГВ() есть ("Покупатель", "покупатель", "buyer10") из ("order_is") значения ("порядок") заполнить (список),... Я использую эту команду после mgmt.commit(); Но все же в терминале он показывает: итерирование по всем вершинам [(~ label = покупатель И покупатель = покупатель10)]. Для повышения производительности используйте индексы. Это означает, что он не использует индексы, а значит, и медленную скорость. - – user3646858
Пожалуйста, ответьте :(@Jason Plurad – user3646858
обновил мой ответ с полным примером, который вы можете запустить в консоли gremlin. –