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

BigQuery中基于行相似度过滤搜索分析表部分查询的实现方法

BigQuery筛选最终搜索词解决方案

核心逻辑:我们要保留的最终搜索词,是不存在任何其他更长的搜索词包含它作为子串的查询。

实现SQL

替换SQL中的表路径为你自己的BigQuery表地址即可使用:

WITH unique_queries AS (
  -- 先对原始query去重,避免重复数据干扰判断
  SELECT DISTINCT query
  FROM `你的项目ID.你的数据集名.你的搜索词表名`
)
SELECT q1.query
FROM unique_queries q1
-- 自连接查找所有包含当前query的更长的其他query
LEFT JOIN unique_queries q2
  ON LENGTH(q2.query) > LENGTH(q1.query)
  AND q2.query LIKE CONCAT('%', q1.query, '%')
-- 没有找到匹配的q2,说明当前query不是任何其他query的子串,符合要求
WHERE q2.query IS NULL
ORDER BY q1.query

逻辑说明

  • 先做去重处理,避免同一个query多次出现导致的匹配异常
  • 加LENGTH(q2.query) > LENGTH(q1.query)条件既可以大幅减少连接计算量,也能避免自身和自身匹配的问题
  • 拼写错误的独立query因为没有其他更长的query包含它,会被正常保留,符合需求
  • 短的有效查询(比如单独的addition)只要没有更长的查询包含它,就不会被误筛,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:45:02