You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效排除特定TLD的域名节点?规避正则表达式查询

问题描述

现有存储域名的单个节点,执行Cypher查询:

MATCH (n) RETURN n.name

返回结果如下:

n.name
"test01.bo-prod.htb"
"test01.bo-prod.local"
"testa01.bo-prod.intra"
"testa01.bo-prod.com"
"testa01.bo-prod.net"

需求:仅返回非本地域名(排除后缀为.intra、.local、.htb的域名),且禁止使用正则表达式以保障查询性能,求最优实现方式。

最优实现方案

使用Neo4j内置的endsWith()字符串函数直接判断域名后缀,该函数属于原生字符串操作,性能远优于正则表达式,且逻辑清晰直观。

对应的Cypher查询语句如下:

MATCH (n)
WHERE NOT n.name endsWith '.intra'
  AND NOT n.name endsWith '.local'
  AND NOT n.name endsWith '.htb'
RETURN n.name

补充性能优化建议

如果域名节点数量较多,建议为n.name字段创建后缀索引,专门针对endsWith()这类后缀匹配场景做优化,能大幅加速查询速度。创建索引的语句如下(需替换YourNodeLabel为节点实际标签):

CREATE INDEX FOR (n:YourNodeLabel) ON (n.name) OPTIONS { indexConfig: { `neo4j.schema.suffix_index`: true } }

内容的提问来源于stack exchange,提问作者abhinav singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:55:17