是 Redis Labs
开发的一个支持全文搜索的 Redis 模块,并支持对中文进行搜索,在生成索引的时候使用压缩和反向索引的方式来减少对内存的占用,并且 RediSearch
还提供精确短语匹配、模糊搜索和数字过滤等方式来增强搜索结果体验。
功能特征
- 增量索引不会造成性能损耗
- 支持文档排名(根据
tf-idf
和用户设置的字段权重进行排名) - 支持设置字段权重(比如 title 字段权重为 2.0,description 字段权重为 1.0)
- 支持使用,
OR
和NOT
等运算符进行复杂的布尔查询 - 支持前缀匹配、模糊匹配、精确短语匹配
- 支持双元音语音匹配
- 支持前缀搜索建议
- 支持中文分词与查询(使用Friso)
- 支持数值和范围过滤
- 支持地理空间查询
- 拥有强大的聚合引擎
- 支持所有utf-8编码的文本
- 支持指定搜索结果返回字段
- 支持搜索结果排序
与行业标杆ElasticSearch
在同等硬件环境下进行性能评测对比。
对维基百科560万个文档(约 5.3GB)进行索引,并对索引的数据集做双单词搜索。
生成索引耗时:
性能对比评测原文:
快速入门
通过docker快速部署
通过二进制进行部署
需要先下载预先编译好了的 redisearch 模块 ==> https://redislabs.com/download-center/modules/
自行编译部署
使用示例
以为例。
安装依赖
示例代码
结语
如果 RediSearch
不是最快的全文搜索引擎,就当我没发过这样标题的内容…(此次隐藏 1024 个狗头)