Neo4J,密码和通配符不起作用

Neo4J, cypher and wildcards not working

我已经阅读了关于 SO 的各种答案以及 neo4j 的帮助页面。但是,我无法让我的通配符匹配工作。例如,如果我输入密码查询

MATCH (author:Author )-[:WROTE]->(article:Article) 
WHERE article.id =~ 'Art10526689' RETURN author, article.date

我答对了。但是,如果我输入查询

MATCH (author:Author )-[:WROTE]->(article:Article) 
WHERE article.id =~ "Art1052668*" RETURN author, article.date

我没有收到任何退货。我使用'"'是因为 lucene 似乎很敏感,而使用'=~'是因为有人建议它比简单地做 (article:Article {id:'Art1052668*'}) 更好,尽管这也不起作用。

一如既往,我们将不胜感激!

问候,理查德

理查德,你快找到答案了。它认为正在发生的事情是你对 Neo4j 支持的正则表达式语法的误解。在您查询中,8* 实际上意味着匹配 8 和 0..无限多个 8。如果您只想用单个字符替换文章 ID 中的 9,那么您可以使用 . 字符。如果您想在 8 之后使用 0..infinite 个字符,那么您可以使用 Art1052668.*。您也可以使用 (?i) 添加不区分大小写,请参见下面的示例...

MATCH (author:Author )-[:WROTE]->(article:Article) 
WHERE article.id =~ "(?i)Art1052668.*" 
RETURN author, article.date