如何在Neo4j中将正则表达式应用于字符串数组?

时间:2013-02-05 10:18:30

标签: neo4j cypher

我正在使用以下类映射为Neo4j节点:

public class Item
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string[] Synonyms { get; set; }
}

我们的想法是数据库搜索应与名称属性或同义词数组中的任何项匹配:

以下搜索执行区分大小写的匹配(为简洁而剪裁):

START (...) WHERE item.Name = "searchTerm") OR ("searchTerm" IN item.Synonyms!) RETURN item;

我正在尝试执行不区分大小写的匹配,但只能达到此目的:

START (...) WHERE item.Name =~ '(?i)searchTerm') OR ("searchTerm" IN item.Synonyms!) RETURN item;

是否可以对同义词字符串数组执行不区分大小写的匹配?

2 个答案:

答案 0 :(得分:4)

我使用了这个,这似乎可以解决问题:

WHERE item.Name =~ '(?i)searchTerm') OR (ANY(s IN item.Synonyms! WHERE s =~ '(?i)searchTerm')

答案 1 :(得分:2)

您可以使用str()功能:

WHERE str(item.Synonyms) =~ '(?).*whatever.*'