Индекс создан успешно, но не переиндексирует новые данные - PullRequest
0 голосов
/ 19 июня 2020

Я полностью сбит с толку, так как этот код работал раньше.

Я пытаюсь создать индекс Mixed Edge для свойства edge на моем графике (trxn_dt_int).

Он показывает, из вывода mgmt.printSchema(), что он был создан успешно (см. Статус: Включено , я выделил соответствующие строки).

mgmt.printSchema() вывод:

==>------------------------------------------------------------------------------------------------
Vertex Label Name              | Partitioned | Static                                             |
---------------------------------------------------------------------------------------------------
entity                         | false       | false                                              |
---------------------------------------------------------------------------------------------------
Edge Label Name                | Directed    | Unidirected | Multiplicity                         |
---------------------------------------------------------------------------------------------------
transacts_with                 | true        | false       | MULTI                                |
---------------------------------------------------------------------------------------------------
Property Key Name              | Cardinality | Data Type                                          |
---------------------------------------------------------------------------------------------------
benef_nm                       | SINGLE      | class java.lang.String                             |
orig_nm                        | SINGLE      | class java.lang.String                             |
trxn_dt_int                    | SINGLE      | class java.lang.Float                              |
---------------------------------------------------------------------------------------------------
Vertex Index Name              | Type        | Unique    | Backing        | Key:           Status |
---------------------------------------------------------------------------------------------------
***************************************************************************************************

Edge Index (VCI) Name          | Type        | Unique    | Backing        | Key:           Status |
---------------------------------------------------------------------------------------------------
byDate                         | Mixed       | false     | search         | trxn_dt_int:   ENABLED|

***************************************************************************************************
---------------------------------------------------------------------------------------------------
Relation Index                 | Type        | Direction | Sort Key       | Order    |     Status |

Вот мой groovy скрипт для создать индекс:

graph.tx().rollback() 
mgmt = graph.openManagement()
mgmt.printSchema()

// get index count
index_count = mgmt.getGraphIndexes(Edge.class).size()

if (index_count==0) {

    // create edge schema for graph (only for properties to be indexed)
    if (!mgmt.getEdgeLabel('transacts_with') & !mgmt.getPropertyKey('trxn_dt_int')) {
        transacts_with = mgmt.makeEdgeLabel('transacts_with').make()
        trxn_dt = mgmt.makePropertyKey('trxn_dt_int').dataType(Float.class).make()
        mgmt.addProperties(transacts_with, trxn_dt)
    }
    mgmt.commit()

    mgmt = graph.openManagement()
    if (!mgmt.containsGraphIndex("byDate")) {
        trxn_dt = mgmt.getPropertyKey('trxn_dt_int')

        mgmt.buildIndex('byDate', Edge.class).addKey(trxn_dt).buildMixedIndex('search')

        mgmt.commit()

        ManagementSystem.awaitGraphIndexStatus(graph, 'byDate').call()

        mgmt = graph.openManagement()
        mgmt.updateIndex(mgmt.getGraphIndex("byDate"), SchemaAction.REINDEX).get()
        mgmt.commit()
    }
}

Когда я запрашиваю сервер elasticsearch, он показывает его наличие:

curl --silent 'http://127.0.0.1:9200/_cat/indices' | cut -d\  -f3
> janusgraph_bydate

Когда я запрашиваю количество документов, он возвращает 0.

curl --silent 'http://127.0.0.1:9200/janusgraph_bydate/_count?q=*'
> {"count":0,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}

Мой вопрос: почему не добавляются никакие документы?

Сначала я думал, что мне нужно переиндексировать, но когда я попытался, это все равно не сработало. Никаких ошибок.

mgmt = graph.openManagement()
index = mgmt.getGraphIndex('byDate')
mgmt.updateIndex(index, SchemaAction.REINDEX).get()
mgmt.commit()

Настройка:

  • Janusgraph 0.5.1
  • Elasticsearch 6.0.1

1 Ответ

1 голос
/ 19 июня 2020

Ну это смущает; он не обновлял индекс новыми данными, потому что на моей машине не хватало памяти, но также не предлагал предупреждений об этом. После освобождения памяти в другом месте он снова работает.

...