2015-12-12 4 views
0

Я использую метод пакетной вставки для создания диаграммы neo4j db. Загрузка набора данных DBpedia и построение его графа свойств.Индексирование Neo4j не работает

public Neo4jBatchHandler(BatchInserter db2, int indexCache, int timeout) { 
    this.db = db2; 
    this.indexCache = indexCache; 
    this.timeout = timeout; 

    BatchInserterIndexProvider indexProvider = new LuceneBatchInserterIndexProvider(
      db); 
    index = indexProvider.nodeIndex("ttlIndex", 
      MapUtil.stringMap("type", "exact")); 
    index.setCacheCapacity("__URI__", indexCache + 1); 

} 

этот код, который я использую для индексирования.


Во время операций запроса я хочу использовать возможность индексирования для повышения эффективности. Но, к сожалению, это не сработает. Вот мой код:

IndexHits<Long> hits = index.get("__URI__", 
        resourceName); 

возвращает нуль, но я уверен, что БД содержит ресурс с resourceName. Как использовать индексы здесь для запроса?

ответ

1

Вы фактически добавили узлы в индекс? Например:

index.add(node,properties) 

Вы запрашиваете во время процесса вставки партии? Если да, промойте индекс

index.flush(); 

так, чтобы новые индексированные узлы были видны для запроса. Рекомендуется, чтобы вы не делали этого часто, см. http://neo4j.com/docs/stable/indexing-batchinsert.html

+0

Я сделал их оба. К сожалению, результат такой же. –

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