是否可以在neo4j上运行不区分大小写的cypher查询?
当我输入此内容时:
start n=node(*)
match n-[]->m
where (m.name="Neo")
return m
它返回一行。但是当我输入这个:
start n=node(*)
match n-[]->m
where (m.name="neo")
return m
它不会返回任何东西;因为名称保存为“Neo”。是否有一种简单的方法来运行不区分大小写的查询?
答案 0 :(得分:42)
是的,使用不区分大小写的正则表达式:
WHERE m.name =~ '(?i)neo'
答案 1 :(得分:9)
另一种方式是:
WHERE LOWER(m.Name) = LOWER("Neo")
如果您使用的是Neo4j客户端(.NET):
Client.Cypher.Match("(m:Entity)")
.Where("LOWER(m.Name) = LOWER({name})")
.WithParam("name", inputName)
.Return(m => m.As<Entity>())
.Results
.FirstOrDefault();
答案 2 :(得分:1)
如果有人正在寻找如何使用参数来执行此操作,那么我设法做到了。
query = "{}{}{}".format('Match (n) WHERE n.pageName =~ "'"(?i)", name, '" RETURN n')
“ name”是变量或您的参数
答案 3 :(得分:0)
您可以将参数传递给不区分大小写的正则表达式,例如:
m.name在哪里=〜'(?i)({param})