跳转到主要内容
🧠

语义搜索

📂 LLM ⏱ 1 min 65 words

语义搜索概述

语义搜索是基于文本语义含义而非关键词匹配的搜索技术。通过将文本编码为向量表示,语义搜索能够理解查询的真实意图,找到语义相关但可能不包含查询关键词的结果。

核心技术

文本向量化

使用嵌入模型将文本转换为向量:

  • 查询文本 → 查询向量
  • 文档文本 → 文档向量
  • 向量维度通常为768-4096

相似度计算

基于向量距离衡量语义相似性:

  • 余弦相似度(最常用)
  • 内积
  • 欧氏距离

向量索引

高效检索海量向量的索引结构:

  • HNSW:分层可导航小世界图,最常用
  • IVF:倒排索引,适合大规模数据
  • PQ:乘积量化,压缩向量节省内存

检索流程

  1. 文档索引:将文档库编码为向量并建立索引
  2. 查询编码:将用户查询编码为查询向量
  3. 近邻搜索:在向量索引中搜索最近邻
  4. 结果排序:根据相似度分数排序返回

优势

  • 语义理解:理解同义词和概念相似性
  • 跨语言:多语言嵌入支持跨语言检索
  • 泛化能力:即使没有精确关键词也能找到相关结果

局限性

  • 精确匹配不足:对精确术语匹配不如关键词搜索
  • 长文本挑战:长文档的向量表示可能丢失细节
  • 领域迁移:通用嵌入模型在特定领域可能效果下降
  • 新鲜度:需要重新索引才能反映最新内容

向量数据库

主流选择

  • Pinecone:全托管向量数据库
  • Weaviate:开源向量搜索引擎
  • Milvus:高性能分布式向量数据库
  • Qdrant:Rust编写的高性能向量数据库
  • Chroma:轻量级嵌入数据库
  • pgvector:PostgreSQL扩展

选择考虑

  • 数据规模和增长预期
  • 延迟和吞吐要求
  • 部署环境和运维能力
  • 额外功能需求(过滤、混合搜索等)

优化技巧

  1. 选择适合领域的嵌入模型
  2. 对长文档进行分段索引
  3. 使用元数据过滤缩小搜索范围
  4. 定期更新索引保持数据新鲜
  5. 监控检索质量持续优化

语义搜索是现代信息检索的核心技术,也是RAG系统的基础设施。