2013-03-09 79 views
0

当我在neo4j控制台执行下面的查询,我得到正确的结果集。 start n = node:search('username:*')return n.username;与密码查询和弹簧neo4j通配符搜索

我在我的java web应用程序中使用弹簧数据neo4j。

在存储库中的代码,我定义的查询为:

@Query(“START N =节点:搜索({0})RETURN n.name如姓名,n.username作为用户名 参数传递 { 0} =“用户名:*”?

没有例外,但结果集的大小为0

能否请你帮我解决这个问题

+0

不确定,但尝试使用字符串而不是整数(0)引用您的参数。 {luceneQuery} – tstorms 2013-03-09 15:24:15

+0

您确定数据已正确编入索引吗?索引名称'搜索'索引键'用户名'?你能用普通的lucene查找来检查吗? – 2013-03-10 09:05:00

回答

1

遗憾的是,整个Lucene的查询不能是参数在Cypher中,如fa据我所知。你可能需要求助于字符串连接/插值。与我关于关系类型作为参数发布的问题类似:https://github.com/neo4j/neo4j/issues/340

+0

我被其他东西卡住了,无法在一段时间内试用。我仍然不确定为什么当使用@Query注释并给出查询时,通配符搜索不起作用 - @Query(“START n = node:search('username:*')RETURN n.name as name,n .username as username。然而,我可以在我的应用程序中使用Result > result = neo4jTemplate.query(query,map)来运行这个。当我在参数中传递相同的查询时,它工作。 – user2138493 2013-03-20 03:36:14