neo4j:如何查询同一字符串的多个属性?

时间:2018-08-17 10:34:35

标签: neo4j cypher

我对neo4j还是很陌生,并且通常会编写代码。我正在尝试查询同一字符串的节点的多个属性,但不想每次搜索都多次键入我的字符串。

例如,现在我的代码是:

START b=node(*) 
WHERE (b.name =~ '(?i).*edward.*' OR b.alias =~ '(?i).*edward.*') 
RETURN b

这意味着我必须为每次搜索键入两次“ edward”。有办法避免这种情况吗?

2 个答案:

答案 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