RedisSearch笔记(一)介绍和安装

Redis Nov 25, 2020

一、前言

这里面的内容主要来自官网,我自己翻译。下载和安装基于自己实践。

二、RedisSearch是什么?

官网标语:RedisSearch是一个基于Redis的二级索引和搜索引擎
一句话简介:RedisSearch是Redis实验室开发,一个开源的,基于Redis的二级索引,查询,全文搜索引擎。

三、简介

Redisearch在Redis之上实现了二级索引,但是与其他Redis索引库不同,它不使用诸如排序集之类的内部数据结构。
它还包括更高级的功能,例如多字段查询,聚合和全文搜索功能,例如精确的词组匹配和文本查询的数字过滤,这是传统的Redis索引方法无法实现或者说实现效率更高的方式。

四、核心特性

  1. 二级索引
  2. 多字段查询
  3. 聚合
  4. 多字段全文搜索
  5. 增量索引不损耗性能
  6. 文档ranking(用户可以在索引阶段手动指定)
  7. 支持复杂的布尔查询
  8. 可选查询子句
  9. 前缀搜索
  10. 字段权重
  11. 查询自动补全(模糊前缀建议)ps:我感觉这个耗费性能
  12. 精确短语搜索和slop搜索 ps:slop查询后面我写下,现在不太了解
  13. 基于词干的查询扩展,支持多种编程语言(使用Snowball)ps:这个也不了解,后面研究下
  14. 支持用于查询扩展和评分的自定义函数() ps:这个也需要学习下
  15. 特定的文档字段的搜索。
  16. 数字过滤器和范围查询。
  17. 使用Redis自己的Geo命令进行地理过滤。
  18. Unicode支持(需要输入UTF-8)。 ps:这个也需要说下吗
  19. 检索全部文档内容或仅ID
  20. 使用索引垃圾收集删除和更新文档。 ps:这个是啥,文档的gc吗?
  21. 部分和条件文档更新。

五、快速上手

官网提供三种方式,让你快速体验RedisSearch的功能。

  1. 官网的云服务。 ps:这个需要注册,我打算在自己的服务上用的,还是自己手动安装的流程走一遍吧。
  2. docker。命令:docker run -p 6379:6379 redislabs/redisearch:latest。ps:国内下载速度也不好,而且理由同上。
  3. 下载源码和二进制包,自己安装。 ps:我想要的。

六、下载和安装

官网提供的下载链接有两个:

1. RedisLab的现成的module

这个要注册,企业版的试用,我没弄。 官网链接

2. git下载

git clone --recursive https://github.com/RediSearch/RediSearch.git 

通过这种方式下载最新的代码。如果想安装特定版本的可以通过git tags命令切换到对应的版本,然后再构建。

git tag
git checkout -b branch_name tag_name

3. 安装

环境

  1. MacOs catalina 10.15.6
  2. commandline tools都是系统默认版本

步骤

  1. 切换到源码目录
  2. make setup ps:官网建议的是sudo setup,没有必要哈。因为这个地方是在检查需要的依赖,查看代码。在mac下是用brew和pip来安装依赖。这两个都不用root权限。pps:其实我执行这个命令error了,没有全部安装成功。我看了输出应该是源码安装redis-server失败了。不过我后来手动安装了redis-server。
  3. make build。 这一步构建我们需要的redisearch.so。输出显示100%构建成功了。
  4. make run。启动一个redis-server,并且加载src/redisearch.so。ps:这一步失败了。 因为我的源码src目录下没有redisearch.so。很奇怪,明明构建成功了的。然后我看我当前的源码目录下存在build目录,我进去看了下。在build目录下存在redisearch.so文件。执行
    cp build/redisearch.so src/ 再次启动就可以了。

七、总结

继续学习下去,希望RedisSearch是一个值得期待的中间件。能够满足我的需要。