1.概述
Redisearch 在 Redis 之上实现了二级索引,但与其他 Redis 索引库不同,它不使用排序集等内部数据结构。
这还支持更高级的功能,例如多字段查询、聚合和全文搜索功能。这些功能包括精确的短语匹配和文本查询的数字过滤,这是传统 Redis 索引方法不可能或有效的。
2.安装
2.1使用 Docker 运行
docker run -p 6379:6379 redislabs/redisearch:latest #此处可以自己配置启动映射目录,这个方式非常简单这里不过多描述了
2.2下载二进制文件编译运行
Redisearch 是用c语言进行编写的,所以我门需要编译它生成依赖模块redisearch.so文件。首先我们应该获取源码,使用以下git命令进行获取
git clone --recursive https://github.com/RediSearch/RediSearch.git
cd RediSearch #进入目录
安装cmake工具进行编译,命令如下:
sudo make setup #linux
make setup #mac
构建RediSearch并运行,命令如下:
make build #构建编译,是根据原文件下面的MakeFile进行构建的
make run #使用 RediSearch 运行 Redis
编译完成,源码里面内迁了redis其他应用,故可以直接使用。如下图所示:
这里可以使用redis-cli工具进行连接RediSearch使用。
创建具有字段和权重的索引:
127.0.0.1:6379> FT.CREATE myIdx ON HASH PREFIX 1 doc: SCHEMA title TEXT WEIGHT 5.0 body TEXT url TEXT
OK
将文档添加到索引:
127.0.0.1:6379> hset doc:1 title "hello world" body "lorem ipsum" url "http://redis.io"
(integer) 3
搜索索引 :
127.0.0.1:6379> FT.SEARCH myIdx "hello world" LIMIT 0 10
1) (integer) 1
2) "doc:1"
3) 1) "title"
2) "hello world"
3) "body"
4) "lorem ipsum"
5) "url"
6) "http://redis.io"
删除索引:
127.0.0.1:6379> FT.DROPINDEX myIdx
OK
添加和获取自动完成索引创建:
127.0.0.1:6379> FT.SUGADD autocomplete "hello world" 100
OK
127.0.0.1:6379> FT.SUGGET autocomplete "he"
1) "hello world"
测试结果如下:
2.3 引入so文件进行启动
我们编译完成以后在RediSearch目录下会生成一个bin文件目录。我们可以在此目录下去找rediseach.so文件。
cd bin #进入编译后的目录
cd linux-x64-release #进入编译发布版目录
cd search #search目录你就可以看到redisearch.so文件了
操作如下图所示:
将redisearch.so文件迁移之redis模块目录下进行启动,没有目录可以自建,笔者此电脑Redis-server是在/usr/local/redis/bin目录存储,故笔者的演示是在此目录进行建module目录,命令分别是
mkdir modeule #前提是进入/usr/local/redis/bin目录,每个人计算机redis按照目录不一样,所以按照自己的实际情况进行配置
mv redisearch.so ./module/
mv librejson.so ./module/#我编译后的redisjons文件
redis-server --loadmodule /module/redisearch.so ##启动redis加载对应rediserache.so文件
操作如下图所示:
至此我的RediSeache安装编译教程完毕,恭喜你成功。后面我出不同编成语言的实例,谢谢大家查看