在Neo4j(使用Lucene索引)中,如何找到Node被索引的内容?

时间:2013-06-25 10:01:01

标签: neo4j lucene luke

对于给定的索引和密钥,我可以使用(Cypher)查找节点:

START n=node:index('key:*')
RETURN n

或使用(嵌入式Java):

Index<Node> index = .....
IndexHits<Node> hits = index.query(key, query);
Iterator<Node> itr = hits.iterator();

我正在寻找的是一种反过来的方法;查找已为其编制索引的给定节点的键/值对。类似的东西:

Map<String, Object> pairs = index.getKeyValuePairs(node);

我能找到的唯一一个朝向这个方向的工具是Luke,但这是一个桌面Java应用程序,使得在服务器上的索引上使用它很棘手。

我对此感兴趣的原因是因为我有一个大的neo4j数据集,我错误地索引了一些节点。现在我找不到它们而不使用通配符索引查询太过不精确并且需要迭代返回的IndexHits,或者使用Cypher查询WHERE子句,这太慢了。

1 个答案:

答案 0 :(得分:0)

在Neo4j 1.9中你不能。在Neo4j 2.0中,您可以在节点上获取标签和索引,例如

CREATE n:Person{name:'Jim'}

制作索引

CREATE INDEX on :Person(name)

列出标签

MATCH n
RETURN LABELS(n)