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

艾体宝洞察|语义搜索与关键词搜索?业务的抉择

包括我在内不少人第一次做搜索功能时都会觉得这是一件没什么技术含量的事用户输入几个词系统返回结果不就行了吗但只要你真正做过搜索系统尤其是参与过RAGRetrieval-Augmented Generation检索增强生成相关项目就会很快意识到​搜索本身就是最容易在 Demo 阶段表现非常完美、却在生产环境频频翻车的模块之一​。在测试环境里无论是搜索的结果相关度抑或是排序是否合理一切都非常每秒。可一旦真正给用户使用问题马上暴露出来明明是很直观的内容却怎么都搜不到搜索结果里混进了大量看起来相关、实际没用的文档这类问题​往往不是实现细节的问题而是搜索模型选错了​。现实情况是​不同搜索场景本来就应该使用不同的搜索策略​。有些场景需要系统理解数据库变慢了同性能调优在语义上的关联有些场景则必须精确命中SKU-2847-B这种编号不能模糊、不能联想真正的生产系统几乎都需要​语义搜索Semantic Search和关键词搜索Keyword Search同时存在​。本文会从工程视角出发系统性地说明这两种搜索方式各自是怎么工作的它们在能力边界上的根本差异为什么最终都会走向混合搜索Hybrid Search什么是语义搜索Semantic Search语义搜索解决的核心问题只有一个“理解你想表达的意思而不是具体的哪些词。”与传统搜索不同语义搜索并不依赖“关键词是否出现”而是通过神经网络模型把文本转换成 ​**向量嵌入vector embeddings**​。这些向量在数学空间中表达的是“语义距离”而不是字面相似度。因此只要语义接近即使查询词和文档里完全没有重合的词也依然可以被检索出来。语义搜索的基本工作流程从系统实现角度看语义搜索通常包含三个核心步骤​文本向量化​使用 Transformer 类模型例如 BERT将文本编码为高维向量。​向量相似度计算​常见做法是使用余弦相似度cosine similarity衡量语义接近程度。​按相似度排序结果​相似度越高结果越靠前。为什么说语义搜索能“理解含义”当文本输入到 embedding 模型后模型会先进行分词然后将这些 token 映射到一个高维向量空间中。 像 BERT 这样的模型生成的是​高维、稠密的向量表示​能够捕捉非常细腻的语义关系。这也是为什么搜索“汽车维修”系统可以返回只写了“车辆保养”“汽车维护”的内容从字面看完全不同但在向量空间中它们的距离非常近因此被判定为“语义相关”。在相似度计算阶段系统通常使用余弦相似度只关心向量方向是否接近而不关心数值大小。最终得到的分值通常在​1​语义几乎完全一致​0​基本无关-1语义相反整体来看语义搜索在召回能力和语义相关性上明显优于传统关键词搜索。什么是关键词搜索Keyword Search关键词搜索的逻辑非常直接也非常“工程化”你输入什么词我就找哪些文档里出现过这些词。它依赖的是一套成熟、稳定、经过几十年验证的经典搜索架构。关键词搜索的核心机制​**倒排索引Inverted Index**​每个词都对应一组包含该词的文档列表。搜索时直接定位文档而不是全表扫描。​查询解析与匹配​搜索“database optimization”时系统分别查找两个词对应的文档集合再做交集。​BM25 排序算法​一种基于概率模型的打分方式综合考虑词在文档中出现的频率该词在所有文档中的稀有程度文档长度的归一化处理BM25 为什么这么常用BM25 的两个参数非常实用​k1​限制词频带来的收益避免“堆关键词”​b​做文档长度归一化防止长文档天然吃亏这套机制在各种规模、各种领域的数据集上都表现稳定因此成为关键词搜索的事实标准。搜索前的文本处理流程在进入索引之前文本通常会经历分词tokenization统一大小写停用词过滤如 the / is词干化running / runs / ran → run关键词搜索的特点优点非常明显查询速度快行为可预测结果完全确定、可复现但代价也很清楚不理解同义词不理解上下文只能匹配“写出来的词”回到上面的例子如果文档里没出现“汽车维修”那就一定搜不到。语义搜索和关键词搜索的本质差异两者的根本区别不在“算法复杂度”而在​匹配方式​​关键词搜索​基于词项的字面匹配lexical matching​语义搜索​基于向量空间的语义相似semantic matching| 特性 | 关键词搜索 | 语义搜索 || ---------- | ---------------------------------- | ------------------------------------ || 匹配方式 | 基于倒排索引的字面精确匹配 | 高维空间中的向量表示与相似度匹配 || 内存占用 | 稀疏表示内存消耗相对较低 | 生产级索引通常需要较大的内存支持 || 延迟 | 大规模数据集下极快 | 较高涉及神经网络推理与向量检索 || 失败模式 | 无法处理同义词和上下文语义 | 容易漏掉特定的术语、编号或产品代码 || 最佳场景 | 精确标识符、布尔逻辑、合规性搜索 | 自然语言查询、概念相似性、RAG |这种差异会直接影响系统在生产环境中的表现。关键恰恰在于它们的“失败方式是互补的”。搜索“数据库内存问题”时语义搜索能联想到缓存淘汰、OOM 等内容搜索OOM-2024-047时只有关键词搜索是可靠的这正是生产系统必须同时使用两者的原因。什么时候更适合用语义搜索只要你的系统面对的是​自然语言表达​语义搜索往往是更优解。RAG检索增强生成实现RAG 的关键不在“搜到包含关键词的文档”而在于​搜到语义最接近的上下文片段​。语义搜索通过向量相似度能稳定为大模型提供高质量上下文。问答系统用户习惯用口语提问而技术文档通常使用专业术语。语义搜索能弥合这种差异。例如当用户问“怎么防止 Redis 内存爆掉”系统能自动关联到内存管理、淘汰策略、maxmemory 的文档。多语言应用向量空间天然支持跨语言语义对齐不必先做翻译。对话式 AI多轮对话需要理解上下文延续语义搜索在这里几乎是刚需。什么时候关键词搜索更合适当精确性和确定性优先级高于“理解语义”时关键词搜索依然不可替代。精确标识符处理产品编码SKU、模型号、数据库主键或法律条文编号时这些内容必须一个不差。复杂布尔条件字段过滤、短语匹配、距离搜索关键词搜索提供的是精确的控制力。合规与审计BM25 的结果完全可复现在合规场景下非常重要。小到中等规模数据集如果只是为一个简单的 CRUD 应用添加全文搜索功能关键词搜索的实现成本更低维护也更简单更省钱。现代应用的选择混合搜索 (Hybrid Search)由于单一方法都有局限生产系统通常采用​混合搜索​将稠密向量检索与稀疏关键词检索结合并使用RRF (Reciprocal Rank Fusion)算法合并两者的排名。在 Redis 中实现混合搜索Redis 通过集成向量检索和全文搜索组件提供了一站式的混合搜索能力。你不需要维护两套独立的数据库系统。# 示例使用 Redis 进行混合检索Python 伪代码from redis.commands.search.query import Query def perform_hybrid_search(index_name, user_query, query_vector):# 构建混合查询# 1. 关键词搜索 performance# 2. 向量相似度搜索 (KNN) base_query f(content:performance)[KNN 10 vector $vec_param AS score] search_query ( Query(base_query).sort_by(score).paging(0, 10).return_fields(id, content, score).dialect(2)) query_params {vec_param: query_vector # 预先生成的向量数据} results redis_client.ft(index_name).search(search_query, query_params)return resultsRedis 的优势​HNSW 索引​支持高性能、高精度的近似最近邻搜索。​统一 API​通过一个查询即可同时处理向量相似度和结构化过滤。​生态集成​原生支持 LangChain、LlamaIndex 等主流 AI 框架。没有完美的搜索算法只有最适合场景的组合。如果你也在构建适配新型业务场景的搜索方案混合搜索不失为一个利器。

相关文章:

艾体宝洞察|语义搜索与关键词搜索?业务的抉择

包括我在内,不少人第一次做搜索功能时,都会觉得这是一件没什么技术含量的事:用户输入几个词,系统返回结果,不就行了吗? 但只要你真正做过搜索系统,尤其是参与过 RAG(Retrieval-Augme…...

2026软考高项论文题目预测!十大管理+绩效域双押题(附答题思路)

备考软考高项的同学都知道,论文是决定成败的关键一科。随着2025年绩效域全面上位,论文考核方式已从“单一知识点”升级为“绩效域协同五大过程组联动可量化测量指标”的实战型命题。2026年考什么?如何准备?本文基于近3年命题规律&…...

DeepCAD实战指南:AI驱动CAD模型生成的终极解决方案

DeepCAD实战指南:AI驱动CAD模型生成的终极解决方案 【免费下载链接】DeepCAD code for our ICCV 2021 paper "DeepCAD: A Deep Generative Network for Computer-Aided Design Models" 项目地址: https://gitcode.com/gh_mirrors/de/DeepCAD DeepC…...

从图像处理到推荐系统:特征值不等式在工程中的5个妙用

从图像处理到推荐系统:特征值不等式在工程中的5个妙用 在工程实践中,数学工具往往能带来意想不到的优化效果。特征值不等式作为线性代数中的重要结论,其应用范围远超理论推导,能解决图像处理、推荐系统等多个领域的实际问题。本文…...

告别手动逐个校验,用快马快速构建vmware密钥批量验证工具提升效率

告别手动逐个校验,用快马快速构建vmware密钥批量验证工具提升效率 最近在帮朋友处理一批VMware16的密钥验证工作,发现手动逐个检查不仅耗时耗力,还容易出错。特别是当需要验证几十甚至上百个密钥时,这种重复劳动简直让人崩溃。于…...

实测联想小新Pro 16 GT:一台把性能、AI和续航拉满的AI PC

最近体验了联想小新Pro 16 GT AI元启版,它不像是传统轻薄本,更像一台兼顾便携、性能和智能体验的全能机型。抛开品牌滤镜,单看硬件和实际使用,确实有不少值得一说的亮点。外观轻薄耐看,屏幕和接口都很实在这台机器用了…...

如何快速搭建抖音批量下载工具:面向初学者的完整指南

如何快速搭建抖音批量下载工具:面向初学者的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

CAM++说话人识别系统优化指南:调整相似度阈值提升准确率

CAM说话人识别系统优化指南:调整相似度阈值提升准确率 1. 相似度阈值的基础认知 1.1 什么是相似度阈值 在CAM说话人识别系统中,相似度阈值是一个关键参数,用于判断两段语音是否来自同一说话人。系统会计算两段语音特征的余弦相似度&#x…...

MelonLoader完全解决方案:Unity游戏Mod加载实战指南

MelonLoader完全解决方案:Unity游戏Mod加载实战指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 当你兴致勃勃地…...

广州邮科如何为你的系统选择合适的在线式充电机?

设备运行最怕断电。在线式充电机,就是那个能让设备“永不断电”的充电神器。今天咱们用大白话,把它讲清楚。它到底是什么?简单说,就是能一边给设备供电,一边给电池充电的智能设备。设备不用停机,电池也能充…...

如何通过LeaguePrank实现游戏界面个性化:打造独特的英雄联盟视觉体验

如何通过LeaguePrank实现游戏界面个性化:打造独特的英雄联盟视觉体验 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款专注于英雄联盟客户端界面自定义的开源工具,它通过安全的官方LCU…...

Qwen3.5-4B-Claude-Opus镜像保姆级教程:双RTX4090D上开箱即用

Qwen3.5-4B-Claude-Opus镜像保姆级教程:双RTX4090D上开箱即用 1. 镜像概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是一个基于 Qwen3.5-4B 的推理蒸馏模型,重点强化了结构化分析、分步骤回答、代码与逻辑类问题的处理能力。该版本以 GG…...

SenseVoice WebUI镜像体验:上传音频秒获文字+表情标签,小白也能玩转

SenseVoice WebUI镜像体验:上传音频秒获文字表情标签,小白也能玩转 1. 快速了解SenseVoice WebUI SenseVoice WebUI是一个开箱即用的语音识别工具,它能将你上传的音频文件快速转换成文字,并自动标注说话人的情感状态和音频中的特…...

PyTorch 2.8镜像实操手册:基于40G数据盘的视频生成训练环境搭建

PyTorch 2.8镜像实操手册:基于40G数据盘的视频生成训练环境搭建 1. 环境准备与快速部署 在开始视频生成训练之前,我们需要先准备好硬件环境和镜像部署。本镜像专为RTX 4090D显卡优化,配备了24GB显存和CUDA 12.4支持,能够高效处理…...

基于凌科芯安加密芯片智能门锁解决方案

随着物联网产业的快速发展,智能网络设备对信息安全的需求与依赖日益增强。在万物互联的背景下,电子锁作为典型的安全防范产品,在重点场所安防与居民居家安全保障中发挥着关键作用。其中,智能门锁凭借密码、指纹、人脸识别、手机远…...

Zotero GPT插件全攻略:打造智能化文献管理工作流

Zotero GPT插件全攻略:打造智能化文献管理工作流 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt 学术研究中,文献管理往往耗费研究者大量时间与精力。Zotero GPT插件将人工智能技术与文献…...

效率倍增:用快马生成openclaw在ubuntu的一键部署与docker化脚本

最近在折腾一个开源项目openclaw的部署,发现每次在Ubuntu服务器上手动安装配置特别费时间。作为一个懒人程序员,我决定研究下怎么把整个流程自动化,结果发现用InsCode(快马)平台可以轻松搞定这件事,效率直接翻倍。 传统部署方式的…...

MCP 实现深度技术报告

1. MCP 协议概述与架构定位 1.1 协议背景 Model Context Protocol (MCP) 是 Anthropic 推出的开放标准协议,旨在标准化 AI 助手与外部数据源、工具之间的集成方式。在 Claude Code 中,MCP 不仅是外部集成接口,更是核心架构组件,…...

TranslucentTB 架构深度解析:Windows 任务栏透明化技术实现与工程化实践

TranslucentTB 架构深度解析:Windows 任务栏透明化技术实现与工程化实践 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tran…...

5秒破解百度网盘提取码:baidupankey智能工具如何重塑你的资源获取体验

5秒破解百度网盘提取码:baidupankey智能工具如何重塑你的资源获取体验 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾为百度网盘加密资源而烦恼?面对"请输入提取码"的提示却束手无策…...

3步构建企业级实时日志分析系统:从数据采集到智能告警

3步构建企业级实时日志分析系统:从数据采集到智能告警 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在现代企业IT架构中…...

Ostrakon-VL C++高性能集成:工业级视觉系统的核心引擎

Ostrakon-VL C高性能集成:工业级视觉系统的核心引擎 1. 工业视觉的极致性能挑战 在高速运转的汽车零部件生产线上,每分钟需要完成200次精密零件的外观检测。传统视觉方案常面临两个致命问题:要么漏检率超标导致质量风险,要么检测…...

基于Qwen3.5-2B的操作系统概念学习助手

基于Qwen3.5-2B的操作系统概念学习助手 1. 为什么需要操作系统学习助手 计算机专业的学生在学习操作系统时,常常面临抽象概念难以理解、理论实践脱节的问题。传统教材中的进程、线程、死锁等概念,如果仅靠文字描述,往往让初学者感到晦涩难懂…...

Matlab GUI计时器:自动更新的数字时钟与恢复/暂停功能的定时器对象实现

Matlab图形用户界面计时器:使用定时器对象自动更新的MatlabGUI,一个数字时钟,作为显示基本组件的快速演示,带有一个按钮,用于恢复/暂停执行更新 实验室配了新酶标仪孵箱但总有人(比如同组摸鱼的小师妹顺便…...

DRASTIC:面向任务感知闭环触觉互联网应用中6G网络切片的动态资源分配框架

大家读完觉得有帮助记得关注和 点赞!!!摘要 本文提出一种新颖的学习驱动的带宽优化框架,称为 DRASTIC(任务感知闭环触觉互联网应用中用于切片的动态资源分配)。该框架在支持增强型移动宽带和高可靠低延迟通…...

Z-Image-Turbo镜像实战教程:开箱即用,9步生成高清图片

Z-Image-Turbo镜像实战教程:开箱即用,9步生成高清图片 1. 为什么选择Z-Image-Turbo镜像 如果你正在寻找一个能快速生成高质量图片的AI工具,Z-Image-Turbo镜像可能是目前最省心的选择。这个镜像最大的优势在于它已经预置了完整的32GB模型权重…...

Claude Code源码阅读分享

Claude Code 源码阅读分享 链接: https://pan.baidu.com/s/1oSUWD11Yjrn5_pVVfK8Y9g?pwdv4ta Quick Start Option 1: Use with Claude Code (Recommended) # Copy agents to your Claude Code directory cp -r agency-agents/* ~/.claude/agents/# Now activate any agent in …...

Qwen3.5-35B-A3B-AWQ-4bit图文理解入门:支持中文的图片问答新手必学5个技巧

Qwen3.5-35B-A3B-AWQ-4bit图文理解入门:支持中文的图片问答新手必学5个技巧 1. 认识Qwen3.5图文理解模型 Qwen3.5-35B-A3B-AWQ-4bit是一款专为视觉多模态理解设计的量化模型,它能像人类一样"看懂"图片内容并进行智能对话。这个模型特别适合需…...

OpenClaw+Phi-3-vision-128k-instruct医疗辅助:医学影像报告自动生成系统

OpenClawPhi-3-vision-128k-instruct医疗辅助:医学影像报告自动生成系统 1. 医疗AI落地的隐私合规挑战 去年参与某三甲医院科研项目时,我深刻体会到医疗AI落地的核心矛盾——技术潜力与隐私合规的冲突。当时我们需要处理数千份CT影像,传统人…...

Wan2.2-I2V-A14B企业应用:合规可控的AI视频生成私有云部署方案

Wan2.2-I2V-A14B企业应用:合规可控的AI视频生成私有云部署方案 1. 企业级视频生成解决方案概述 在当今内容创作需求爆炸式增长的环境下,企业面临着视频制作成本高、周期长的挑战。Wan2.2-I2V-A14B私有部署镜像提供了一套完整的解决方案,让企…...