Neo4j Cypher:在Lucene全文搜索中处理空格和通配符

时间:2014-02-06 22:19:45

标签: lucene neo4j cypher

我创建了一个名为myFullTextIndex的FullText索引。

当我想搜索模式:Hello World时,查询如下:

START w=node:myFullTextIndex('title:"Hello World"')

效果很好。

但是,我无法搜索由通配符包围的相同字符串 我希望搜索此模式可以返回结果:*Hello World*

我试过了:

START w=node:myFullTextIndex('title:"*Hello World*"')

START w=node:myFullTextIndex('title:*"Hello World"*')

但不起作用(发生语法错误)。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用复杂的运算符和空格时,用()括号包围嵌入的Lucene查询。

在使用通配符的情况下,以下Cypher在我的数据库中的精心挑选的测试中工作。

START w=node:myFullTextIndex('title:(*Hello World*)')

Lucene部分是

*Hello World*

请注意,()括号将Lucene子部分安全地嵌入Cypher语法中。

另见Neo4j: Lucene phrase matching using Cypher (fuzzy)