当前位置: 首页 > 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.jsqmd.com/news/85257/

相关文章:

  • 47、商业科技管理的最佳实践与创新趋势
  • 参数效率革命:法国团队2.5亿参数模型颠覆视觉文档检索格局
  • 智谱AI开源GLM-4-9B大模型:多维度性能超越Llama-3-8B,新增26种语言支持与超长上下文能力
  • Qwen3-Coder开源发布:开启智能编程新纪元,全球开发者共享
  • 3、大规模基础设施管理指南
  • 23、匿名存储与元数据:挑战与机遇
  • 37、商业技术管理的关键要点与策略
  • 8、KVM虚拟化全解析:从部署到管理与优化
  • 24、元数据:Web与对等网络的关键要素
  • SWIFT框架全解析:从安装部署到高级训练的一站式AI开发指南
  • 9、KVM虚拟化与数据库管理全解析
  • 腾讯开源 HunyuanVideo 提示词重写模型:攻克视频生成语义理解难题,双模式适配多样化创作需求
  • 字符串(听课笔记)
  • 10、MySQL、邮件服务与企业应用实践
  • 21、BIND与DHCP在DNS中的应用详解
  • 49、商业技术管理中的最佳实践与创新商业化价值链条剖析
  • 40、声誉服务器:功能、架构与计算方法解析
  • 双轨EMA融合:AdEMAMix优化器如何突破AdamW的梯度利用瓶颈
  • 22、利用BIND和DHCP进行DNS管理的全面指南
  • 腾讯混元A13B大模型量化版震撼开源:以130亿参数撬动千亿级性能,引领AI普惠新革命
  • 26、网络与系统故障排查实用指南
  • 27、Linux 系统故障排查与性能优化指南
  • 42、Groove共享空间:安全与协作的深度解析
  • 28、网络故障排查工具全解析
  • 43、Groove 安全机制深度解析
  • 44、分布式协作软件的安全与互操作性解析
  • NPP 热带森林:巴拿马巴罗科罗拉多,1969-1990 年,R1
  • 2025开源大模型新突破:GPT-oss-20B混合架构与多矩阵量化技术深度解析
  • ComfyUI中实现图像背景替换的一键式流程
  • llama-factory安装记录