我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

neo4j的世界逻辑里面,对节点或者关系的属性查询问题上,是如何处理字符串模糊查询的呢?是如何查询是否包含某个字符串的呢?neo4j是否支持正则表达式查询节点数据呢?这些都是本文要探讨的问题。

苏南大叔:neo4j图数据库,如何执行字符串包含模糊查询? - neo4j-contains
neo4j图数据库,如何执行字符串包含模糊查询?(图5-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文测试环境:win10neo4j社区版@4.4.6java@11.0.14

准备测试数据

本文使用的例子,还是neo4j自带的movie例子。为了测试方便,对里面的人物 James Thompson 做了点改写。

match (m) where m.name='James Thompson' set m.name='James' return m

下面的语句就是正常的match操作:

match (m{name:'James'}) return m
match (m) where m.name='James' return m

苏南大叔:neo4j图数据库,如何执行字符串包含模糊查询? - match-node
neo4j图数据库,如何执行字符串包含模糊查询?(图5-2)

内置字符串函数 contains

内置函数contains包含:

match (m) where m.name contains 'James' return m

苏南大叔:neo4j图数据库,如何执行字符串包含模糊查询? - contains
neo4j图数据库,如何执行字符串包含模糊查询?(图5-3)

内置函数starts with开始于:

match (m) where m.name starts with 'James' return m

内置函数ends with结束于:

match (m) where m.name ends with 'James' return m

苏南大叔:neo4j图数据库,如何执行字符串包含模糊查询? - starts-ends
neo4j图数据库,如何执行字符串包含模糊查询?(图5-4)

正则表达式

使用~关键字一键开启正则表达式:

match (m) where m.name =~ 'James.*' return m
match (m) where m.name =~ '.*mes.*' return m

苏南大叔:neo4j图数据库,如何执行字符串包含模糊查询? - neo4j-正则表达式
neo4j图数据库,如何执行字符串包含模糊查询?(图5-5)

相关文章

综述

neo4j的更多cypher的用法,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   neo4j    cypher