当neo4j lucene自动索引处于精确模式(这是默认值)时,查询类型为:
start n=node:node_auto_index('name:asfd\\ a*') return n
正常工作(假设您有一个名为asdf adsf
的节点。
但是,在these instructions之后将索引切换为“全文”模式(包括删除索引并重新分配索引属性)时,相同的查询不会返回任何结果。
在空格后放置通配符时,尝试通过全文索引搜索neo4j。
答案 0 :(得分:3)
要在旧索引的索引查询中使用空格,请使用两个反斜杠,因为一个由cypher eaten :
start n=node:node_auto_index('name:asfd\\ a*') return n
如果从Java使用Cypher,由于java字符串引用,您需要四个反斜杠。
答案 1 :(得分:3)
将Cypher的Lucene部分用另一对()括号嵌入。
Lucene query syntax documentation声明:
Lucene支持单个术语内的单个和多个字符通配符搜索(不在短语查询中)。
因此,您不能将*
通配符与短语一起使用(这不起作用:"asfd a*"
)。相反,使用AND
运算符搜索两个单项:
start n=node:node_auto_index('name:(asfd AND a*)') return n
答案 2 :(得分:0)
您可以将查询编写为:
MATCH (n)
WHERE n.name =~ 'asfd.*'
RETURN n
更多信息请点击此处:http://docs.neo4j.org/chunked/milestone/query-where.html