Neo4j CYPHER查询中的LIKE子句

Neo4j CYPHER查询中的LIKE子句,neo4j,cypher,Neo4j,Cypher,似乎在Cypher查询中不支持LIKE 是否有其他结构可以执行相同的任务 例如: start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n; 使用正则表达式: 从2.0版开始,首选语法使用MATCH e、 g 如果要使其不区分大小写 MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n; 不需要正则表达式: start n = node(*) where n

似乎在Cypher查询中不支持LIKE

是否有其他结构可以执行相同的任务

例如:

start n = node(*) where n.Name LIKE('%SUBSTRING%') return n.Name, n;
使用正则表达式:


从2.0版开始,首选语法使用
MATCH

e、 g


如果要使其不区分大小写

MATCH (n) WHERE n.name =~ '(?i).*SUBSTRING.*' RETURN n;
不需要正则表达式:

start n = node(*) where n.Name contains "substring" return n.Name, n;
转到并向下滚动到谓词部分。你会发现这个和其他有用的东西

想要不区分大小写吗?转换为小写:

start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;

我担心regex可能是答案。呻吟;)尽管如此,它还是比简单的LIKEyes更强大,我也关心regexp,但现在它是直接的方式。但是您仍然可以使用这样的lucene索引:
start n=node:your_index('property:*SUBSTRING*)返回n.name,n并请使用参数而不是文字值:
start n=node(*),其中n.Name=~{like}返回n.Name,n参数:{“like”:“.*SUBSTRING.*”},也可以使用node(*)作为非图形用例的开始子句,然后使用ulkas的索引查找建议,看起来它不使用“.*SUBSTRING.*”,而只使用“^.*SUBSTRING.*$”@MichaelHunger,因此在SDN存储库中,在参数中而不是在查询中使用。*,如果无法在@Query(“MATCH(m:Neo4JManufacturer),其中LOWER(m.name)=~LOWER(“{searchTerm}”)返回m ORDER BY m.name”)公共列表搜索(@Param(“searchTerm”)String searchTerm),则强制我们在服务层连接它们;这是一个正确的假设吗?refcard是一个非常方便的书签:例如,它列出了所有支持的字符串匹配运算符。遗憾的是,它区分大小写,没有区分大小写的版本。啊!是的,这会起作用,就像
=~'(?i)子字符串“
一样,但它的性能不好。lower()阻止索引的使用,因此在大数据上它将挂起。我在这里有一个开放功能请求:
start n = node(*) where n.Name contains "substring" return n.Name, n;
start n = node(*) where lower(n.Name) contains lower("substring") return n.Name, n;