我目前正在使用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" ) );
有什么想法吗?
谢谢!
答案 0 :(得分:4)
尝试使用以下Cypher语句,因为您的Lucene查询似乎是错误的:
START n=node:fulltextIndex("name:*er*") RETURN n;