当前位置: 首页 > 知识库问答 >
问题:

SDN Neo4j Cypher不区分大小写的查询

万俟玉书
2023-03-14

我有一个Spring Data Neo4j(3.4.0.RELEASE)实体,它带有一个索引的属性名称

@NodeEntity
public class Decision {

    @Indexed
    private String name;
    ....

我需要通过nameproperty实现不区分大小写的搜索。

在我的决策库中,我创建了以下方法:

@Query("MATCH (d:Decision) WHERE d.name =~ '(?i){name}' RETURN d")
Decision findByNameIgnoreCase(@Param("name") String name);

但是在执行后,我得到了以下例外:

org.springframework.dao.InvalidDataAccessApiUsageException: Illegal repetition near index 3
(?i){name}
   ^; nested exception is java.util.regex.PatternSyntaxException: Illegal repetition near index 3
(?i){name}
   ^

如何在name属性上实现正确的不区分大小写的搜索?


共有1个答案

燕翔飞
2023-03-14

我知道这有点棘手,但您可以在注释中使用此查询,我想:

MATCH (d:Decision) WHERE LOWER(d.name) = LOWER({name}) RETURN d

如果将两个名称(参数和值)都设置为小写,则大小写无关紧要。

要完全执行您想要的操作(正则表达式匹配),必须使用//:

MATCH (d:Decision) WHERE d.name =~ /(?i){name}/ RETURN d

让我知道它是否有效。

 类似资料:
  • 问题内容: 我正在使用Flask-SQLAlchemy从用户数据库中查询;但是,虽然 will return doing returns 我想知道是否有一种以不区分大小写的方式查询数据库的方法,以便第二个示例仍然返回 问题答案: 你可以使用过滤器中的或功能来完成此操作: 另一种选择是使用而不是进行搜索:

  • 问题内容: 有谁知道如何使用Postgres 7.4进行不区分大小写的搜索/查询? 我在考虑RegEx,但不确定如何执行此操作,或者不确定是否有函数/标志或可以添加查询的内容? 我正在使用PHP连接并执行查询。 因此,我正在寻找匹配地址信息的方法。 例子: 有什么想法吗? 问题答案: 使用,例如: 文件资料。 或者,您可以使用或,例如:

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,

  • 问题内容: 我有这个json文件: 我使用以下Go代码搜索数据: 它会查找是否通过“板球”之类的相同字符串进行搜索,但是如果我搜索此“板球”之类的字符串,则不会找到它。 问题答案: 添加到您的RegEx。