我使用批量插入方法创建neo4j图形数据库。加载DBpedia数据集并构造它的属性图。
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);
它返回null,但我确定db包含resourceName
的资源。我应该如何在这里使用索引进行查询?
答案 0 :(得分:1)
您是否真的将节点添加到索引中?例如:
index.add(node,properties)
您是否在批量插入过程中查询?如果是,请刷新索引
index.flush();
以便新索引的节点可见以进行查询。建议您不要经常这样做,请参阅http://neo4j.com/docs/stable/indexing-batchinsert.html