Neo4j / Lucene - 如何创建一个独特的索引?

时间:2013-05-15 17:05:43

标签: lucene indexing neo4j

我正在使用Neo4j,我想知道是否可以使用唯一字段创建lucene索引。 (即,每个键/值对只能与一个节点相关联)

例如,我想实现以下行为:

someIndex.add(node1, "firstName", "Roy");
someIndex.add(node2, "firstName", "John");

// Here I expect to recieve an exception because the key/value pair (firstName, Roy) is already associated with node1
someIndex.add(node3, "firstName", "Roy");

是否有可能实现这样的目标?

谢谢!

2 个答案:

答案 0 :(得分:0)

在Java API级别,您可以使用UniqueFactory。有关使用示例,请查看http://docs.neo4j.org/chunked/stable/transactions-unique-nodes.html

答案 1 :(得分:0)

在我的代码中,我正在使用BatchInserterIndex并添加我需要索引的键和值的映射。 代码是这样的:

BatchInserterIndex myIndex = indexProvider.nodeIndex("myIndex", MapUtil.stringMap("type", "exact"));
Map<String, Object> key_Value_IndexMap = new ConcurrentHashMap<String, Object>();
key_Value_IndexMap.put("ID", value);
myIndex.add(createdNodeId, key_Value_IndexMap);