附录 术语表与速查


文档摘要

附录 术语表与速查 本附录收录全教程的术语解释、过滤表达式速查和索引选型决策表,供你随时翻阅。 附录 A 术语表 术语 | 英文 | 释义 | 详见 进程内/嵌入式 | in-process / embedded | 以库形式嵌入应用进程,无独立服务 | 第 0、2 章 RAG | Retrieval-Augmented Generation | 检索增强生成,先用检索捞知识再喂 LLM | 第 0、9 章 Embedding | Embedding | 把文本/图像映射为向量的模型 | 第 3 章 向量 | Vector | Embedding 模型输出的数值表示 | 第 3 章 稠密向量 | Dense Vector | 固定长度、几乎每维非零的向量(语义) | 第 3 章 稀疏向量

附录 术语表与速查

本附录收录全教程的术语解释、过滤表达式速查和索引选型决策表,供你随时翻阅。

附录 A 术语表

术语 英文 释义 详见
进程内/嵌入式 in-process / embedded 以库形式嵌入应用进程,无独立服务 第 0、2 章
RAG Retrieval-Augmented Generation 检索增强生成,先用检索捞知识再喂 LLM 第 0、9 章
Embedding Embedding 把文本/图像映射为向量的模型 第 3 章
向量 Vector Embedding 模型输出的数值表示 第 3 章
稠密向量 Dense Vector 固定长度、几乎每维非零的向量(语义) 第 3 章
稀疏向量 Sparse Vector 极高维、仅少数维度非零的向量(关键词权重) 第 3、7 章
维度 Dimension 稠密向量的长度,由模型决定 第 3 章
相似度度量 Metric 衡量向量相似度的尺子:COSINE/L2/IP 第 3 章
ANN Approximate Nearest Neighbor 近似最近邻算法族 第 5 章
Flat Flat 暴力检索基线,精确但慢 第 5 章
HNSW Hierarchical Navigable Small World 分层小世界图索引,生产首选 第 5 章
IVF Inverted File 聚类倒排桶索引 第 5 章
DiskANN DiskANN 磁盘图 + PQ,面向十亿级 第 5 章
RaBitQ RaBitQ 一种量化方法,配合 HNSW 省内存 第 5 章
量化 Quantization FP32→FP16/INT8/INT4 的有损压缩 第 5 章
乘积量化 PQ / Product Quantization 子空间量化,DiskANN 用于距离估计 第 5 章
Recall@k Recall@k top-k 中真实最近邻占比,衡量 ANN 精度 第 5 章
Collection Collection 存放 Document 的具名容器(≈表) 第 2 章
Document Document 数据基本单元,含 id+vectors+fields(≈行) 第 2 章
Schema Schema Collection 的结构定义 第 2、4 章
标量字段 Scalar Field 非向量的结构化字段(字符串/数值/布尔/数组) 第 2、4 章
倒排索引 Inverted Index 值→DocID 列表,加速标量过滤 第 2、4 章
全文索引/检索 FTS 文本分词建倒排,BM25 排序 第 6 章
BM25 Okapi BM25 全文检索的相关性评分算法 第 6 章
WAND Weak AND 多词项检索的剪枝加速算法 第 6 章
分词器 Tokenizer 把文本切成词项:standard/whitespace/jieba 第 6 章
过滤表达式 Filter Expression 类 SQL 的标量过滤条件 第 6 章、附录 B
混合检索 Hybrid Search 多路检索 + 重排序融合 第 7 章
重排序器 Reranker 融合多路结果的策略:Weighted/RRF 第 7 章
RRF Reciprocal Rank Fusion 倒数排名融合,仅看排名不看分数 第 7 章
optimize optimize 把 Flat 暂存区合并进正式索引 第 8 章
Flat 暂存区 Flat buffer 新向量先入此区,保证写入吞吐与实时可查 第 8 章
mmap memory-mapped I/O 内存映射文件,加速数据访问 第 4、8 章
DDL Data Definition Language 在线改 Schema 的语句(Column/Index DDL) 第 4 章
端侧 RAG Edge / On-Device RAG 全链路本地化、数据不出设备的 RAG 第 9 章

附录 B 过滤表达式速查

过滤表达式用于 query(filter=...)delete_by_filter(filter=...),是类 SQL 的布尔表达式。

B.1 比较运算符

运算符 含义 支持类型 示例
< <= > >= 大小比较 整数/浮点/字符串 price <= 29.99author <= 'M'
= != 等于/不等于 整数/浮点/字符串/布尔 in_stock = truestatus != 'archived'
is null / is not null 空值判断 所有类型 email is null

字符串比较用字典序;字符串字面量用单/双引号;布尔用 true/false

B.2 成员运算符

运算符 含义 示例
in / not in 属于/不属于集合 status in ('active','pending')
contain_any 数组含至少一个 tags contain_any ('bug','urgent')
contain_all 数组含全部 tags contain_all ('bug','urgent')
array_length 数组长度条件 array_length(tags) > 2

值列表必须用括号 () 包裹。

B.3 字符串模式

运算符 含义 示例
like 通配符匹配(% name like 'Smart%'(前缀)、file like '%.log'(后缀)

中缀/后缀模式(%abcabc%def)需建倒排索引并开 enable_extended_wildcard=True 才高效;多通配符模式(%a%b%)开销大慎用。

B.4 逻辑运算符

运算符 含义 示例
and status = 'active' and score > 90
or role = 'admin' or perm = 'write'
() 分组 a = 1 and (b = 2 or c = 3)

B.5 FTS query_string 语法(全文检索高级模式)

语法 含义 示例
term 匹配词项 vector
"phrase" 精确短语 "machine learning"
+term / -term 必须含/必须不含 +vector -slow
AND / OR / NOT 布尔 vector AND search
(expr) 分组 (a OR b) AND c

优先级:AND/NOT 高于 OR;不支持前置否定(NOT term 需配合肯定词项)。

B.6 性能要点

  • 过滤字段必须建倒排索引,否则退化为逐条扫描,显著变慢。
  • 范围查询开 enable_range_optimization=True
  • 复杂通配符开 enable_extended_wildcard=True
  • 未索引字段能过滤但慢——只给"经常过滤"的字段建索引。

附录 C 索引选型决策表

C.1 五种索引对比

索引 原理 查询复杂度 内存 Recall 平台限制 最佳场景
Flat 暴力全扫 O(N) 100% 调试/小数据(<几万)/精确基线
HNSW 分层图 O(log N) 生产首选,内存够的常规 RAG
HNSW-RaBitQ 图+量化 O(log N) 中高 x86_64+AVX2 大规模、要省内存
IVF 聚类倒排桶 O(N/n_list×n_probe) 中(参数敏感) 海量、内存敏感、愿调参
DiskANN 磁盘图+PQ 含磁盘I/O 极低 仅Linux+libaio 十亿级、内存装不下

C.2 选型决策树

数据规模 / 约束 │ ├─ 调试、小数据(< 几万)、要绝对精确 │ └─► Flat │ ├─ 数据能装进内存 │ ├─ 内存充裕 ──► HNSW (RAG 默认) │ └─ 内存吃紧(x86+AVX2)──► HNSW-RaBitQ 或 HNSW + 量化 │ └─ 数据远超内存(十亿级,仅 Linux) └─► DiskANN

C.3 关键参数速查

索引 构建参数 查询参数 召回第一旋钮
HNSW mef_constructionquantize_type efradiusis_using_refiner 查询时 ef
HNSW-RaBitQ total_bitsnum_clusters ef 查询时 ef
IVF n_listn_iters n_proberadius 查询时 n_probe
DiskANN max_degreelist_sizepq_chunk_num list_size 查询时 list_size

C.4 度量选择速查

场景 度量 分数方向 备注
文本稠密向量(主流模型) COSINE 越小越相似(距离) RAG 默认,与 OpenAI/BGE/e5 对齐
已归一化向量 IP 越大越相似 等价余弦,更快
稀疏向量(词项权重) IP 越大越相似 加权点积衡量匹配度
部分图像/音频 Embedding L2 越小越相似 看模型卡

铁律:度量必须与 Embedding 模型训练度量对齐,否则召回质量断崖式下跌(详见第 3 章)。

附录 D RAG 检索方式速查

需求 用什么 关键代码
纯语义检索 单向量路线 Query(field_name="dense", vector=...)
按属性缩小范围 标量过滤 filter="publish_year >= 2024"
语义 + 属性限定 向量 + 过滤 两者叠加
关键词精确匹配 全文检索 Query(field_name="content", fts=Fts(match_string=...))
召回率上限 混合检索 Query + RrfReRanker / WeightedReRanker
复用已存向量 按 id 查询 Query(field_name="dense", id="book_1")
只取必要字段 output_fields output_fields=["text","source"]

本教程到此完结。回到 README 查看完整章节列表与阅读顺序。


发布者: 作者: 转发
评论区 (0)
U