我对neo4j还是很陌生,并且通常会编写代码。我正在尝试查询同一字符串的节点的多个属性,但不想每次搜索都多次键入我的字符串。
例如,现在我的代码是:
START b=node(*)
WHERE (b.name =~ '(?i).*edward.*' OR b.alias =~ '(?i).*edward.*')
RETURN b
这意味着我必须为每次搜索键入两次“ edward”。有办法避免这种情况吗?
答案 0 :(得分:1)
您需要ANY function:
MATCH (b)
WHERE ANY(k IN ['name', 'alias'] WHERE toString(b[k]) =~ '(?i).*edward.*')
RETURN b
答案 1 :(得分:0)
在参数中定义正则表达式,并像这样使用它: :param regex:'(?i)。爱德华。'
START b=node(*)
WHERE (b.name =~ $regex OR b.alias =~ $regex)
RETURN b