是否有任何方法在Neo4J中使用CONTAINS来比较不区分大小写的字符串?

Pra*_*ngh 9 neo4j cypher

假设有一个节点Student,它有一个属性Name.

MATCH (s:Student) were s.Name contains "stack" 
RETURN s.Name
Run Code Online (Sandbox Code Playgroud)

输出应该是:stack,Stack,STACK等

Wil*_*yon 17

您可以对每个的大小写进行比较,例如:

MATCH (s:Student) 
WHERE toLower(s.Name) CONTAINS toLower("stack")
RETURN s.Name
Run Code Online (Sandbox Code Playgroud)

  • 缺点 - 如果添加toLower(),则不会应用Index.:-( (4认同)

cyb*_*sam 5

正则表达式运算符=~通过(?i)修饰符支持不区分大小写的搜索。

此查询与您的查询相同,但不区分大小写:

MATCH (s:Student)
WHERE s.Name =~ '(?i).*stack.*'
RETURN s.Name
Run Code Online (Sandbox Code Playgroud)

  • 缺点是-它不适用于索引。 (4认同)