我试图在Spring Boot中向Neo4j的@Query注解传递搜索算法的多个单词。以下是我的尝试。
@Query("WITH [{search}] AS sarray "
+ "MATCH (a:Node) "
+ "WHERE ALL(s IN sarray WHERE a.name=~('(?i).*'+s+'.*') " // <- This is known good regex
//The rest of the query which is known good
这个查询在Neo4j的web界面中可以完美地工作,就像这样。
WITH ["some","search","terms"] AS sarray
我试过的是:
我得到的错误是 "无效的Regex:在索引5(?i)附近的非法重复。{search}.^"
在更改查询以包含多个单词之前,这个regex确实有效。
你可以试试这个。
@Query("MATCH (u:User) WHERE u.id in $ids RETURN u.id as id")
List<String> findByIdIn(@Param("ids") List<String> ids);