当前位置: 首页 > news >正文

记录一次伟大的实践--上亿数据快速模糊匹配方案

问题:

一千二百万条url ,还有1亿1千万的关键词,关键词一定出现在某条url的名字里,但是关键词不完全和名字相等,并且可能一个关键词同时出现在多个url中,所有和关键词匹配的url都要列出来

背景:

最开始没有想到会处理这么多数据,果断采用以下最省力的方案,半小时测试数据顺利通过,果断收钱完工,客户拿到脚本跑一下午都没出结果,来售后了,一顿排查,脚本没问题,再问数据,谁成想有上亿的数据要处理!!!
欧麦嘎的,要了老命了,方案1运行完估计要将近36小时,收人家票子了,没办法,改吧……然后就有了灵关一现的方案2
没有任何经验可谈,纯纯被逼出来的想法
不得不说Gemini 是真好用,ql_query就是它给我改出来的(顺便夹带点私货:我这有Gemini成品号,绑定教育机构的,50大洋一个,售后30天,前几天的大规模封号事件,我们这一个都没封,售后期内封号包换(不限制次数)

方案1

第一反映,直接把url 拆成map, key=url的name value=url ,然后遍历 关键词,遍历map,关键词在key里就记录value

解析1

小批量数据能用,但是太慢了,每条关键词都要扫描一遍map,太TMD蠢了,而且对内存占用极大 ,多线程OOM

方案2

把url 拆开 name 和url ,导入mysql 中,并且把name字段建立全文索引

CREATETABLEIFNOTEXISTSall_urls(idINTNOTNULLAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255)NOTNULL,urlTEXTNOTNULL,FULLTEXTINDEXidx_name_ft(name)-- 在这里直接定义全文索引)ENGINE=InnoDB;

查询语句

# 重要的是这里不要使用 select url from all_urls where name like '%%' ,这种会导致全文索引直接失效了,效率及其低ql_query=""" SELECT url FROM all_urls WHERE MATCH(name) AGAINST(:search_term IN BOOLEAN MODE) """# source_name 就是要查询的关键字search_term=f'"{source_name}"'params={'search_term':search_term}# with db_pool.get_session() as session: 这使用sqlalchemy实现的,自己写就的了withdb_pool.get_session()assession:res=session.execute(text(sql_query),params)

解析2

使用此方案处理时间从方案1 的5个线程运行天级别,降低到了单线程运行分钟级别

http://www.rkmt.cn/news/95491.html

相关文章:

  • Qwen3-Coder开源发布:开启智能编程新纪元,全球开发者共享
  • 37、商业技术管理的关键要点与策略
  • 9、KVM虚拟化与数据库管理全解析
  • 49、商业技术管理中的最佳实践与创新商业化价值链条剖析
  • 28、网络故障排查工具全解析
  • 21、智能家居物理实践:节能、供电与备份全攻略
  • 22、家庭网络实用指南:数据备份、隐藏与布线策略
  • 29、智能家居的数据来源
  • 30、智能家庭的数据来源
  • 31、智能家居的数据来源与自动化控制
  • 35、智能家居控制系统全解析
  • DreamAquarium v2.083:梦幻水族馆屏保
  • 26、UNIX环境下SAS的信息格式、宏功能及过程使用指南
  • 高级用户必备:ComfyUI自定义节点扩展功能全揭秘
  • 深入理解C++中的堆栈:从数据结构到应用实践
  • C++指针详解:从基础到应用
  • 44、邮件服务与VoIP技术全解析
  • 53、分布式文件系统与网络信息服务入门
  • 56、网络信息服务(NIS)与轻量级目录访问协议(LDAP)部署指南
  • 61、Linux 虚拟化与备份全解析
  • 62、Linux备份全攻略
  • 探索HiDream-I1在ComfyUI中的高效应用指南
  • 视觉语言模型新突破:CogAgent 9B版本震撼发布,引领多模态交互新纪元
  • 39、敏捷软件开发:从阶段视角的全面解析
  • 2025年12月13日最热门的开源项目(Github)
  • ComfyUI与玻璃艺术结合:光影效果AI模拟实验
  • HiPO技术深度解析:LLM动态推理的革命性突破
  • 阿里云通义千问开源新突破:Qwen3-VL系列模型震撼发布,多模态能力对标行业顶尖水平
  • 腾讯开源Hunyuan-0.5B-Instruct-FP8:轻量级大模型部署新纪元
  • 支持四大电脑系统 绿色免装自动嗅探,视频一键下载工具