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
我已经阅读了关于 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