如何在 Neo4j Cypher 上制作包含过滤器的字符串

Posted

技术标签:

【中文标题】如何在 Neo4j Cypher 上制作包含过滤器的字符串【英文标题】:How can I make a string contain filter on Neo4j Cypher 【发布时间】:2014-07-28 11:51:46 【问题描述】:

我需要在 Neo4J 中创建一个包含过滤器的字符串。这个想法很简单。

一个很好的例子是,我需要从个人数据库中检索所有在他的名字中包含汽车子字符串的人。

我该怎么做?

【问题讨论】:

【参考方案1】:

作为附加更新,从 neo4j 3.0 开始,它的可读性可能会更好:

MATCH(n)
WHERE n.name CONTAINS 'car'
RETURN n

(已编辑以包含Maciej 修复我的回复,谢谢!)

【讨论】:

此方法有效,但您必须将 car 括在引号中,如下所示: MATCH(n) WHERE n.name CONTAINS 'car' RETURN n 你可以使用包含单词列表吗?【参考方案2】:

您可以使用正则表达式来匹配名称的一部分,例如:

MATCH (n)
WHERE n.name =~ '.*car.*'
RETURN n

如果您将标签“人员”分配给数据库中的所有人,则查询将是:

MATCH (n:Person)
WHERE n.name =~ '.*car.*'
RETURN n

更多信息,请参阅http://docs.neo4j.org/chunked/stable/query-where.html#_regular_expressions

【讨论】:

以上是关于如何在 Neo4j Cypher 上制作包含过滤器的字符串的主要内容,如果未能解决你的问题,请参考以下文章

将阵列与Cypher(Neo4j)组合在一起

Cypher语法

知识图谱Neo4j Cypher查询语言详解

Neo4j:如何删除与 cypher 的特定关系?

如何往neo4j中批量插入cypher语句

Neo4j 第九篇:查询数据(Match)