我有一个包含域名的单个节点。
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,。hth)?由于性能原因,我试图避免使用正则表达式搜索。
您可以为此目的创建一个节点标签,然后在执行查询时使用该标签。例如:
-
创建标签,NonLocal
WITH ['.intra', '.local', '.htb'] as excluded MATCH (n) WHERE not (any (x in excluded WHERE n.name contains x) ) SET n:NonLocal
-
您的查询变成
MATCH (n:NonLocal) RETURN n
参考:https://neo4j.com/docs/cypher-manual/current/clauses/set/set-set-a-label-on-a-node