使用Neo4jClient进行不区分大小写的搜索
这只是一个简单快捷的方法,我需要能够搜索我们的数据库,不需要区分大小写,我知道怎么做,只是不需要使用Neo4jClient。代码如下:使用Neo4jClient进行不区分大小写的搜索,neo4j,neo4jclient,Neo4j,Neo4jclient,这只是一个简单快捷的方法,我需要能够搜索我们的数据库,不需要区分大小写,我知道怎么做,只是不需要使用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 == 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中的索引。只有以
开头的才可以。