Как создать индекс вершин центри c в JanusGraph - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь построить центр вершин c Индекс в Janusgraph.

foo = mgmt.makePropertyKey('foo').dataType(String.class).cardinality(org.janusgraph.core.Cardinality.SINGLE).make();
foo_bar = mgmt.makeEdgeLabel('foo_bar').make();
byfoo_bar = mgmt.buildEdgeIndex(foo_bar, 'byfoo_bar', Direction.BOTH, Order.desc, foo)

при выполнении mgmt.printSchema ()

gremlin> mgmt = graph.openManagement();mgmt.printSchema();
==>------------------------------------------------------------------------------------------------
Vertex Label Name              | Partitioned | Static                                             |
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Edge Label Name                | Directed    | Unidirected | Multiplicity                         |
---------------------------------------------------------------------------------------------------
foo_bar                        | true        | false       | MULTI                                |
---------------------------------------------------------------------------------------------------
Property Key Name              | Cardinality | Data Type                                          |
---------------------------------------------------------------------------------------------------
foo                            | SINGLE      | class java.lang.String                             |
---------------------------------------------------------------------------------------------------
Vertex Index Name              | Type        | Unique    | Backing        | Key:           Status |
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Edge Index (VCI) Name          | Type        | Unique    | Backing        | Key:           Status |
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Relation Index                 | Type        | Direction | Sort Key       | Order    |     Status |
---------------------------------------------------------------------------------------------------
byfoo_bar           | Account_AwsEC2Instance | BOTH      | foo            | desc     |    ENABLED |
---------------------------------------------------------------------------------------------------

Странно, что этот индекс обнаруживается в индексе отношений вместо EdgeIndex (VCI).

При выполнении примера запроса:

gremlin> g.V().outE("foo_bar").has("foo","foo").profile()
14:34:42 WARN  org.janusgraph.graphdb.transaction.StandardJanusGraphTx  - Query requires iterating over all vertices [()]. For better performance, use indexes
==>Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
JanusGraphStep(vertex,[])                                           7271        7271          87.027     3.16
    \_condition=()
    \_orders=[]
    \_isFitted=false
    \_isOrdered=true
    \_query=[]
  optimization                                                                                 0.023
  optimization                                                                                 0.008
  scan                                                                                         0.000
    \_query=[]
    \_fullscan=true
    \_condition=VERTEX
JanusGraphVertexStep([foo.eq(foo)])                                                           2666.037    96.84
    \_condition=(foo = foo AND type[foo_bar])
    \_orders=[]
    \_isFitted=true
    \_isOrdered=true
    \_query=org.janusgraph.diskstorage.keycolumnvalue.SliceQuery@3b00ddb7
    \_multi=true
    \_vertices=7271
  optimization                                                                                 0.412
  backend-query                                                        0                    2611.443
    \_query=org.janusgraph.diskstorage.keycolumnvalue.SliceQuery@3b00ddb7
                                            >TOTAL                     -           -        2753.064        -

Теперь у меня есть пара вопросов.

  1. Что такое Различия между вершинно-центрированным c индексом и реляционным индексом?
  2. Как создать вершинно-центрированный c индекс? Я следовал за официальной документацией , чтобы создать их, но вместо этого он создает реляционный индекс.
  3. Используется ли даже мой отношениеIndex для ответа на запрос?
...