SEO技术

SEO技术

Products

当前位置:首页 > SEO技术 >

RAG系列七:高效检索,精准定位相关内容

96SEO 2026-05-08 01:24 1


单靠把问题转成向量再抛进数据库Yi经远远不够。我们需要在海量文档中快速锁定真正有价值的片段,同时兼顾多样性与可解释性。本文将围绕「距离阈值」「Self‑Query」以及「MMR」三大技巧展开讨论,并配上完整的实验代码,帮助你在真实项目中构建既省时又靠谱的检索管线。

RAG系列七:高效检索,精准定位相关内容

一、先说清楚——Chroma 返回的是「距离」不是「相似度」

重要认知:Chroma 向量库默认输出的是 欧氏/余弦距离,而非我们常见的相似度分数。hen多同学误把它当作 0‑1 的打分,导致阈值设定失误。下面的示例会直观展示距离的取值范围。

results = vectorstore.similarity_search_with_score(
    query="Python 异步编程Zui佳实践", k=10
)
for doc, dist in results:
    print

从上面输出Ke以kan出,同类文章的距离往往在 0.15 左右,而毫不相关的篇章可Neng飙到 0.80+。

二、实验数据与元信息概览

为了让演示geng贴近生产环境,我们准备了十篇技术博客,每篇dou带有「年份」「类别」「标签」等元数据。源码Yi托管在 GitHub,文末提供直接下载链接。

},
  {"title":"2022 年前端框架对比:React vs Vue vs Angular","year":2022,"category":"前端开发","tags":},
  {"title":"Go 微服务实战:gRPC 与 Kubernetes","year":2021,"category":"后端开发","tags":},
  {"title":"云原生技术趋势:Service Mesh 与 eBPF","year":2023,"category":"云原生","tags":},
  {"title":"Rust 系统编程:内存安全与零成本抽象","year":2022,"category":"系统编程","tags":},
  {"title":"数据库选型指南:PostgreSQL vs MySQL vs MongoDB","year":2023,"category":"数据库","tags":},
  {"title":"Python 爬虫开发:Scrapy 与 Playwright 对比","year":2023,"category":"后端开发","tags":},
  {"title":"Python 性Neng优化指南","year":2022,"category":"后端开发","tags":},
  {"title":"JavaScript 异步编程:Promise 与 async/await","year":2023,"category":"前端开发","tags":},
  {"title":"Python 机器学习入门:从 NumPy 到 PyTorch","year":2023,"category":"人工智Neng","tags":}
]
三、策略一:相似度阈值过滤 思路简述

先把所有文档映射为向量,再根据查询向量挑出 Top‑K。随后只保留那些距离低于预设阈值的结果,直接剔除明显不相关的条目。

实现要点

✅ 在向量搜索之前使用元数据过滤,可显著压缩搜索空间。

⚠️ 阈值的好坏取决于模型本身和业务需求,需要通过实验调参。

💡 建议先跑几次查询,观察距离分布,再决定 “安全线”。

def filter_by_distance:
    """只保留 distance ≤ max_dist 的文档"""
    return 
raw = vectorstore.similarity_search_with_score
filtered = filter_by_distance
print} 条")
实验观察

对同一查询使用不同阈值时:

阈值命中条数是否包含干扰项
0.202No
0.305Mild
0.509Yes
四、策略二:Self‑Query —— 把自然语言拆解成结构化过滤条件 核心流程图
用户提问
   ↓   Self‑Query 分析器
结构化过滤 → 元数据筛选 → 向量检索 → MMR 多样性挑选 → 阈值剔除 → Zui终返回
L​LM 驱动的解析器示例
from langchain.retrievers.self_query.base import SelfQueryRetriever
self_retriever = SelfQueryRetriever.from_llm(
    llm=llm,
    vectorstore=vectorstore,
    document_contents="技术博客文章",
    metadata_field_info="},
    ],
)
answers = self_retriever.invoke
print

*提示*:不同版本的 LangChain 中 SelfQueryRetriever 的导入路径可Neng略有差异,请以实际安装为准。

规则版解析器
import re
def simple_parser:
    filters = {}
    # 抓取年份
    if m := re.search\s*年', query):
        filters = int)
    # 类别关键词
    for cat in :
        if cat in query:
            filters = cat
            break
    # 标签关键词
    for tag in :
        if tag in query:
            filters.setdefault.append
    return filters
print)
# {'year': 2022, 'tags': }
*小经验*:

Ru果业务对时间粒度要求geng细,Ke以把正则改成 `\s*年\s*\s*月`;Ru果标签体系庞大,建议用 LLM 来完成抽取,以免规则维护成本爆炸。

五、策略三:MMR—— 保证结果多样且仍然贴合查询 M​​MR公式速记

MMR = λ × Sim – × max_{d_j∈S} Sim

Sim: 查询与候选文档的相似度。越大越好。

SIM: Yi选集合内部的相似度,越小越好,用来压制重复信息。

λ: 调节“精准”与“新颖”的平衡系数,一般设在 0.5 附近。

Kotlin 示例
// 假设Yi有 distances 与 candidates
double lambda = 0.5;
List selected = new ArrayList<>;
while   转负数变大
        double redun = selected.stream
                .mapToDouble)
                .max.orElse;
        double score = lambda * rel -  * redun;
        if  { bestScore = score; best = cand; }
}
selected.add;
candidates.remove;
}
return selected;
*实战感受*

在上面的十篇样本里当 K=5、lambda=0.6 时我们得到:

Pytho​n 系列两篇;JavaScript 一篇;Rust 一篇;云原生一篇——主题覆盖广且每篇dou紧贴查询意图。

If lambda 降到 0.2,则几乎全是 Python 文档,缺乏跨领域视角。

If lambda 提升到 0.9,则出现了《Service Mesh》这类完全不相关但“新鲜”的条目。

六、组合拳——Self‑Query + MMR + 距离阈值,实现「精准+多样」双赢
# 构建 Retriever 实例
retriever = vectorstore.as_retriever(
    search_type="mmr",
    search_kwargs={
        "k": 10,
        "lambda_mult": 0.6,
        "fetch_k": 30,
        # Self‑Query 自动产生的过滤条件写进这里
        # 示例: {"year":2022,"category":"后端开发"}
        # 实际使用时请把 parser 输出直接塞进去
        "filter": parsed_filters,
})
# 第一步:拿到带 distance 的原始列表
raw_results = retriever.get_relevant_documents
# 第二步:手动Zuo一次阈值裁剪
final_results =  <= 0.28]
print} 条高质量答案")

*为什么要再加一步阈值?* 因为 MMR 虽然Neng提升多样性,却不保证每个候选dou足够接近原始查询。一个简单的距离门槛Ke以把极端离谱的结果踢出,让 LLM Zui终生成回答时geng安心。

七、落地建议 —— 从实验室走向生产环境

先Zuo元数据过滤,再Zuo向量搜索。a) 在业务层面明确哪些字段经常被用户指定;b) 把这些字段写进 VectorStore 的 filter 参数,可省掉几千次不必要的向量比较。

Diversity 参数要根据业务调节。a) 内容聚合平台倾向于较低 λ,以保证同主题深度;b) 搜索引擎或问答机器人则适当抬高 λ,让答案geng具横向视野。

S​elf‑Query 不一定要 LLM。Ru果你的标签体系固定,用规则解析即可快速上线;等业务成熟后再换成 LLM,提高鲁棒性。

监控距离分布是必须步骤。a) 每天抽取若干热点查询记录;b) 绘制 histogram,Ru果出现 “长尾” 增长说明模型漂移,需要重新训练或调低阈值。

L​LM 回答环节要加上来源引用。a) 将返回文档 ID 或标题嵌入 Prompt,让模型在生成答案时标明出处;b) 防止幻觉,提高可信度。

八、完整代码仓库 & 可运行示例

The full demo lives at:

The entry point is , which sequentially performs:

L​LM 驱动 Self‑Query → 获得结构化过滤条件;

K​V store 根据 filter 缩小候选集合;

M​MR 挑出 K 条兼具关联和新颖性的文档;

D​istance 阈值 清洗;

L​LM 把精选片段拼接成自然语言答案并附上来源链接。 .

本文旨在帮助读者快速掌握 RAG 检索链路中的关键技巧,如有任何疑问或想交流实践经验,请在评论区留下足迹,或者直接提交 Issue 给仓库维护者!祝你玩转向量检索、写出让人惊叹的 AI 应用 🚀.

© 2026 AI 文案 工作室 | 保留所有权利


标签: 策略

SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback