RediSearch
RediSearch是一个高性能的全文搜索引擎,可作为一个Redis Module 运行在Redis上,是由RedisLabs团队开发的。
主要特性如下:
简单,快速索引和搜索
数据存储在内存中,使用内存-有效的自定义数据结构
支持多种使用UTF-8编码的语言
文档和字段评分
结果的数值过滤
通过词干扩展查询
精确的短语搜索
按特定属性过滤结果(例如仅在标题中搜索“foo”)
强大的自动提示引擎
增量索引(不需要对索引进行优化和压缩)
支持用作存储在另一数据库中的文档的搜索索引
支持已经在Redis中存在的HASH对象作为文件的索引
扩展到多个Redis实例
适用于数据量适中,内存和存储空间有限的场景。
安装Redis
因为 Redis Modules 是 redis 4.0 引入的一种扩展机制。用户可以通过实现 redis module 提供的 C api 接口为 redis 服务添加定制化功能。因此 Redis 服务器必须为 4.0 以上版本。
如果已经安装,可以查看版本
info server
如果没有安装,可以参考 Centos下安装Redis 来安装
安装RediSearch
RediSearch 需要CMake 编译。没有安装可以yum 安装
yum install -y make
先下载源代码:
git clone --recursive https://github.com/RediSearch/RediSearch.git
注意:这里一定要用 git 下载。(我不用 git 下载时,make 编译不了),报错如下:
原因暂时没有想明白。
编译源代码
make build
加载
加载有两种方式:
1.在 redis.conf 文件最后加上
执行命令打开配置文件
vim ../redis.conf
G 命令让 光标移动到文档尾部,增加一行
loadmodule /{your_path}/RediSearch/src/redisearch.so
这样启动 redis server 时,使用该配置文件,就自动加载了
2.动态加载,在 redis server 运行时,利用 module 命令加载
MODULE LOAD /{your_path}/RediSearch/src/redisearch.so
类似的卸载如下
MODULE UNLOAD mymodule
如果 redis server 已经启动,可以利用以下命令关闭
./redis-cli shutdown
如果客户端已经连接,可以直接 shutdown
加载后,可以查看目前加载的模块
module list
如图,如果出现 “ft”,代表 RediSearch 已经加载。
使用
RediSearch 使用也很简单,官方文档上很清楚,这里就不多说了
原理
待续