使用Neo4jClient进行不区分大小写的搜索

使用Neo4jClient进行不区分大小写的搜索,neo4j,neo4jclient,Neo4j,Neo4jclient,这只是一个简单快捷的方法,我需要能够搜索我们的数据库,不需要区分大小写,我知道怎么做,只是不需要使用Neo4jClient。代码如下: client.Cypher .Match("(person:Person)") .Where((Person person) => person.Email == search) 其中“search”是传递给方法的字符串类型的参数。我已经读到使用=~'(?I)text'有效,但这不允许我传入参数,我尝试了以

这只是一个简单快捷的方法,我需要能够搜索我们的数据库,不需要区分大小写,我知道怎么做,只是不需要使用Neo4jClient。代码如下:

client.Cypher
            .Match("(person:Person)")
            .Where((Person person) => person.Email == search)
其中“search”是传递给方法的字符串类型的参数。我已经读到使用=~'(?I)text'有效,但这不允许我传入参数,我尝试了以下方法:

client.Cypher
            .Match("(person:Person)")
            .Where((Person person) => person.Email =~ "(?i){terms}")
            .WithParam("terms",search)
但它不喜欢这样

我希望能够在没有case的情况下进行搜索,如果可能的话,同时使用like(或者ILIKE,因为它似乎用于模式匹配)

谢谢

编辑和回答 最终的代码是这样的:

return client.Cypher
            .Match("(person:Person)")
            .Where("person.Email =~ {terms}")
            .OrWhere("person.Name =~ {terms}")
            .WithParam("terms", "(?ui).*" + search + ".*")
            .Return<Person>("person").Results.ToList();
返回客户端.Cypher
.Match(“(人:人)”)
.Where(“person.Email=~{terms}”)
.OrWhere(“person.Name=~{terms}”)
.WithParam(“术语”,“用户界面”。*“+搜索+”*”)
.Return(“person”).Results.ToList();
这正是我想要的。 还采纳了一个小写字段的建议,该字段的值为,我们在帐户中已经有一个,这样登录名就不区分大小写了,我将在电子邮件和名称字段中这样做,似乎比使用toLower()更好(在Cypher或C#中)


因此,感谢@Stefan Armburster的帮助。

您不能有部分参数。而是将
(?i)
添加到参数值:

query: person.Email =~ term
parameter: term = "(?i)<myvalue"
query:person.Email=~term

parameter:term=“(?i)您不能有部分参数。而是将
(?i)
添加到参数值:

query: person.Email =~ term
parameter: term = "(?i)<myvalue"
query:person.Email=~term

参数:term=“(?i)您不能有部分参数。而是将
(?i)
添加到参数值:

query: person.Email =~ term
parameter: term = "(?i)<myvalue"
query:person.Email=~term

parameter:term=“(?i)您不能有部分参数。而是将
(?i)
添加到参数值:

query: person.Email =~ term
parameter: term = "(?i)<myvalue"
query:person.Email=~term

参数:term=“(?i)类似于使用Neo4j 2.3中的索引进行搜索(属性=~'.*(?i)值。*'),
=~
不使用2.3中的索引。只有
开头,这样做。就像使用Neo4j 2.3中的索引进行搜索一样(属性=~'.*i)值。*'),
=~
不使用2.3中的索引。只有
开头,这样做。就像使用Neo4j 2.3中的索引进行搜索一样(属性=~'.*i)值。*'),
=~
不使用2.3中的索引。只有
开头,这样做。就像使用Neo4j 2.3中的索引进行搜索一样(属性=~'.*i)值。*'),
=~
不使用2.3中的索引。只有以
开头的
才可以。