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

时间:2015-03-20 13:44:18

标签: regex lucene neo4j cypher wildcard

我已经阅读了有关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*'})更好,尽管这也不起作用。

像往常一样,任何帮助都将深表感谢!

问候,理查德

1 个答案:

答案 0 :(得分:2)

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

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