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

如何在Neo4j查询中统计匹配标签数量并返回节点权重?

Neo4j 查询:返回带匹配标签权重的节点列表

要实现返回包含指定标签的节点,并统计每个节点匹配的标签数量作为权重,你可以通过列表推导式结合size()函数来计算权重,修改后的Cypher查询如下:

MATCH (n)
WHERE any(x IN ["im-a-tag", "test2"] WHERE x IN n.tags)
WITH n, size([x IN ["im-a-tag", "test2"] WHERE x IN n.tags]) AS weight
RETURN n, weight
ORDER BY weight DESC

说明:

  • [x IN ["im-a-tag", "test2"] WHERE x IN n.tags]:通过列表推导式,生成目标标签列表中存在于节点n.tags里的元素集合
  • size(...):计算上述集合的长度,也就是节点匹配的标签数量,作为权重weight
  • ORDER BY weight DESC:按权重从高到低排序结果,可根据需求调整排序方向

针对你给出的示例节点:

  • 节点a{tags:["im-a-tag", "not-important"]}会匹配1个目标标签,返回a{..., weight: 1}
  • 节点b{tags:["im-a-tag", "test2"]}会匹配2个目标标签,返回b{..., weight: 2}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:37:05