Neo4j:Cypher中的全文索引和自动索引

时间:2013-04-15 23:00:21

标签: java neo4j cypher

我目前正在使用Cypher的全文索引和自动索引。

我正在使用Java embedded,Neo4j v 1.8.2。

我的基本问题是:如何用Cypher查询全文索引?

当我创建以下索引时:

Index<Node> fulltextIndex = index.forNodes( "fulltextIndex",
            MapUtil.stringMap( IndexManager.PROVIDER, "lucene",
            "type", "fulltext" ) );

以下Cypher声明不会返回任何内容:

START n=node:fulltextIndex(name='*er*') RETURN n;

以下java代码返回所需的节点:

Node found = fulltextIndex.query("name", "*er*").getSingle();
id= found.getId();
String cypherQuery="START n=node("+id+") RETURN n";

那么实际上差异在哪里呢?为什么Cypher声明不起作用?

另外,我想是否有办法将全文索引与自动索引相结合?以下(如http://docs.neo4j.org/chunked/milestone/auto-indexing.html所示)似乎不起作用:

Index<Node> fulltextIndex = index.forNodes("node_auto_index", "fulltextIndex",
            MapUtil.stringMap( IndexManager.PROVIDER, "lucene",
            "type", "fulltext" ) );

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

尝试使用以下Cypher语句,因为您的Lucene查询似乎是错误的:

START n=node:fulltextIndex("name:*er*") RETURN n;