【问题标题】:Wildcard search with cypher query and spring neo4j使用密码查询和 spring neo4j 进行通配符搜索
【发布时间】:2013-02-24 22:21:30
【问题描述】:

当我在 neo4j 控制台中执行以下查询时,我得到了正确的结果集。 start n=node:search('username:*') return n.username;

我在我的 java web 应用程序中使用 spring data neo4j。

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

@Query("START n=node:search({0}) RETURN n.name 作为名称,n.username 作为用户名 参数传递 {0} = '用户名:*'

也不例外,结果集大小为0。

你能帮我解决这个问题吗?

【问题讨论】:

  • 不确定,但尝试使用字符串而不是整数 (0) 来引用您的参数,例如{luceneQuery}
  • 您确定数据索引正确吗?索引名称search 索引键username ?你能用普通的 lucene 查找来检查吗?

标签: neo4j spring-data-neo4j


【解决方案1】:

不幸的是,据我所知,整个 lucene 查询不能成为 Cypher 中的参数。您可能需要求助于字符串连接/插值。类似于我发布的关于将关系类型作为参数的问题:https://github.com/neo4j/neo4j/issues/340

【讨论】:

  • 我被其他东西困住了一段时间无法尝试。我仍然不确定为什么当我使用 @Query 注释并给出查询时通配符搜索不起作用 - @Query("START n=node:search('username:*') RETURN n.name as name, n .username 作为用户名。但是我可以在我的应用程序中使用 Result> result = neo4jTemplate.query(query, map) 运行它。当我在参数中传递相同的查询时,它起作用了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多