【发布时间】:2014-05-06 03:50:40
【问题描述】:
我有一个使用 neo4j 2.1.0-M02 托管的现有图形数据库。数据是使用 BatchInserter 创建的,但没有任何索引。不久之后,我通过这样做使用 Cypher 添加了索引:
CREATE INDEX ON :MyLabel(myId)
注意:我的原始帖子将下面提到的每个 API 都链接到相应的 neo4j 在线文档,但我不能发布超过两个链接,因为我是新用户。下面的所有类和方法都可以在这里找到:http://api.neo4j.org/2.1.0-M02/allclasses-frame.html
现在我想从外部来源导入更多关系。所有传入的关系数据都包含对现有节点的 myId 的引用。 BatchInserter 似乎是又要走的路,但 createRelationship 方法需要节点 ID。
我需要将传入的 myIds 转换为数据库的节点 ID,并且我想利用我之前创建的索引。看起来我需要使用 BatchInserterIndex,它是使用 BatchInserterIndexProvider 提供的。我能找到的唯一 BatchInserterIndexProvider 是 LuceneBatchInserterIndexProvider,但它的 nodeIndex 方法需要一个“名称”。
这就是我卡住的地方。我给它起什么名字?我之前的 Cypher "CREATE INDEX ON" 语句没有显示名称,当我在 shell 中执行 ":schema" 命令时也没有看到名称。这是整个输出:
Indexes
ON :MyLabel(myId) ONLINE
No constraints
如何使用我现有的架构索引批量导入?文字字符串 ":MyLabel(myId)" 是我应该传入的名称吗?我是否缺少其他课程或策略?
我可以在网上找到的所有示例都在同一运行中初始化数据和索引,或者他们从代码中创建索引,并使用以后可以使用的名称。
【问题讨论】: