2013-10-14 2 views
1

У меня есть график в OrientDB (используется стек Tinkerpop), и ему необходимо включить очень быстрый поиск краевых значений/свойств/полей и вершин в/из вершин.Композитный индекс краев и свойств (tinkerpop/orientDB)

Таким образом, в основном пользователю потребуется для поиска следующим образом:

SELECT FROM myEdges WHERE inVertex = {VertexIdentity}, outVertex = {VertexIdentity}, property1 = 'хуг'

По сути, это композитный индекс для класса края, из 3-х свойств: inVertex, outVertex & property1

в основном - если пользователь уже имеет VertexIdentity 2 вершин (возможно, в виде: #CLUSTER_ID: record_id) - и значение свойства (в этот случай, xyz) - это позволит очень быстро выглядеть p, чтобы увидеть, существует ли комбинация уже на графике (если две вершины связаны с свойством 1) - без прохождения обхода.

До сих пор я нашел следующий код, который поможет с составными индексами, но я не могу увидеть, можно ли включить в него/out вершины в этом (для края графа).

https://github.com/orientechnologies/orientdb/blob/master/tests/src/test/java/com/orientechnologies/orient/test/database/auto/SQLSelectCompositeIndexDirectSearchTest.java

Можно ли ??

ответ

1

Вы можете сделать это с помощью OrientDB, просто создайте составной индекс для свойств ввода и вывода (объявите их ранее в классе E).

Это также используется в качестве ограничений, чтобы избежать множественных ребер, соединяющих одни и те же вершины.

3

Это работает отлично для определения края уникальность:

OCommandSQL declareIn= new OCommandSQL(); 
declareIn.setText("CREATE PROPERTY E.in LINK"); 
OCommandSQL declareOut= new OCommandSQL(); 
declareOut.setText("CREATE PROPERTY E.out LINK"); 
OCommandSQL createIndexUniqueEdge= new OCommandSQL(); 
createIndexUniqueEdge.setText("CREATE INDEX unique_edge ON E (in, out) UNIQUE"); 
graph.command(declareIn).execute(); 
graph.command(declareOut).execute();    
graph.command(createIndexUniqueEdge).execute(); 

В случае вам просто добавить еще одно свойство к классу пограничного и, следовательно, в индексе

Смежные вопросы