0

我使用Cineasts Movies & Actors (12.3MB) 数据集,我想从 Kevin Bacon 和他合作过的所有美国演员那里获得路径,他们也曾出演过一部戏剧电影。所以我做了这个密码查询,它不返回任何行:

START KB=node(759)

MATCH (KB)-->(m1)<--(p)-->(m2)

WHERE HAS(p.birthplace) AND p.birthplace =~ ".*(USA|United States)" AND m2.genre = "Drama"

RETURN m1, p, m2

但是,如果我摆脱了正则表达式 ( p.birthplace = "USA"),它会返回一个结果。怎么了?初始查询应至少返回一行。我正在使用 Neo4j 1.9.2。

4

1 回答 1

2

实际上,这比 neo4j 或 cypher 更像是 REGEX。你缺少括号。(USA|United States) 表示 USAnited States 或 USUnited States, bc the | 正在 ORing 两个字符 A 和 U。尝试 ((USA)|(United States))

编辑:PS,试试这个网站以获得一些很棒的正则表达式支持和测试http://gskinner.com/RegExr/

于 2013-09-05T10:55:50.443 回答