Infinity项目搜索功能全面指南
【免费下载链接】infinity 项目地址: https://gitcode.com/gh_mirrors/inf/infinity
引言
Infinity作为一个高性能的数据处理平台,提供了多种强大的搜索功能。本文将详细介绍Infinity支持的各种搜索类型及其实现原理,帮助开发者更好地理解和使用这些功能。
全文搜索详解
索引构建模式
Infinity的全文索引支持两种构建模式:
- 实时模式:在表创建后立即建立索引,数据会实时构建索引并暂存内存,达到阈值后刷盘
- 离线模式:对已存在数据构建索引时采用外部排序方式
分词器选择
Infinity提供了丰富的分词器选项,每种分词器都有其适用场景:
| 分词器类型 | 标识符 | 适用场景 | 特点 |
|---|---|---|---|
| 标准分词器 | standard | 拉丁语系 | 支持多种语言词干提取 |
| Ngram分词器 | ngram-x | 代码搜索 | x代表n值,常用ngram-3 |
| 简体中文分词器 | chinese | 中文内容 | 基于结巴分词 |
| 繁体中文分词器 | traditional | 繁体内容 | 简转繁处理 |
| 日文分词器 | japanese | 日文内容 | 基于mecab |
| 韩文分词器 | korean | 韩文内容 | 使用韩语词典 |
| RAG分词器 | rag | 中英双语 | 召回率高但吞吐低 |
| IK分词器 | ik | 中英双语 | 类似Elasticsearch的IK |
| 关键词分词器 | keyword | 关键词匹配 | 简单布尔匹配 |
搜索语法
Infinity支持丰富的搜索表达式语法:
-
基础搜索:
- 单词搜索:
"blooms" - 多词搜索(默认OR关系):
"Bloom filter"
- 单词搜索:
-
逻辑操作:
- AND操作:
"space AND efficient" - OR操作:
"Bloom OR filter"
- AND操作:
-
高级功能:
- 短语搜索:
"Bloom filter" - 权重提升:
quick^2 brown - 模糊短语:
"harmful chemical"~10 - 字段限定:
title:(quick OR brown) - 特殊字符转义:
"space\:efficient"
- 短语搜索:
评分机制
Infinity默认使用BM25算法进行相关性评分,同时支持:
- 动态剪枝加速多词搜索
- 关键词模式(返回0/1简单匹配结果)
- 布尔相似度选项
向量搜索技术
稠密向量搜索
Infinity提供两种向量索引类型:
-
HNSW索引:
- 采用局部自适应量化优化
- 搜索速度快,内存占用低
-
IVF索引:
- 支持多种数据类型(float32/16、int8等)
- 支持标量量化和乘积量化
- 内存占用极低
对于流式向量数据,Infinity会自动执行暴力搜索,无需人工干预。
稀疏向量搜索
基于Block-Max Pruning(BMP)算法实现,支持实时搜索。
张量搜索与混合搜索
张量搜索特点
-
与多向量的区别:
- 保存文档所有token的嵌入
- 主要用于张量重排序
- 使用MaxSim方法计算相似度
-
性能优化:
- 二进制量化:减少存储空间
- 汉明距离:加速检索
混合搜索策略
Infinity支持将多种搜索方式组合使用,提供三种融合方法:
-
RRF(互逆排名融合):
- 无需调参
- 各路径相关性指标无需关联
-
加权求和:
- 可指定不同权重
- 适合明确各路径重要性的场景
-
张量匹配:
- 基于MaxSim算子
- 使用查询张量与文档张量计算
条件过滤机制
Infinity支持两种索引类型的条件过滤:
二级索引过滤
特点:
- 支持实时构建和搜索
- 适用于高基数列
- 支持丰富比较操作符(<,>,=,in等)
全文索引过滤
特点:
- 通过filter_fulltext参数实现
- 基于关键词匹配
- 支持minimum_should_match参数
最佳实践建议
-
分词器选择:
- 中文内容优先考虑RAG或IK分词器
- 代码搜索使用ngram-3
-
向量索引:
- 追求速度选HNSW
- 内存敏感选IVF
-
混合搜索:
- 不确定各路径权重时用RRF
- 明确优先级时用加权求和
-
性能优化:
- 张量搜索启用二进制量化
- 高并发场景考虑稀疏向量
通过合理组合这些功能,开发者可以在Infinity平台上构建出高效、精准的搜索系统,满足各种复杂场景的需求。
【免费下载链接】infinity 项目地址: https://gitcode.com/gh_mirrors/inf/infinity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



