RediSearch - 高性能全文搜索引擎


AGPL
跨平台
C/C++

软件简介

RediSearch是一个高性能的全文搜索引擎,可作为一个Redis Module 运行在Redis上,是由RedisLabs团队开发的。

主要特性

RediSearch 是在Redis基础上从0开始开发的一个全文搜索索引,使用新的Redis Modules
API来扩展Redis新命令和能力,它的主要特性包括:

  • 简单,快速索引和搜索

  • 数据存储在内存中,使用内存-有效的自定义数据结构

  • 支持多种使用UTF-8编码的语言

  • 文档和字段评分

  • 结果的数值过滤

  • 通过词干扩展查询

  • 精确的短语搜索

  • 按特定属性过滤结果(例如仅在标题中搜索“foo”)

  • 强大的自动提示引擎

  • 增量索引(不需要对索引进行优化和压缩)

  • 支持用作存储在另一数据库中的文档的搜索索引

  • 支持已经在Redis中存在的HASH对象作为文件的索引

  • 扩展到多个Redis实例

性能

基准设置:

  • 数据集 :从维基百科页面提供的有用的英文摘要的转储,其中包括510万短摘要。

  • 基准测试 :我们针对不同的搜索引擎运行了几个具有不同配置文件的查询。并行的运行1, 8, 16、32和64个并发客户端执行每个查询。我们也跑了自动完成测试,从具有相同客户端并发配置文件的数据集中测试前1100名最受欢迎的2和3个字母前缀。

  • 物理配置 :2个 c4.4x large AWS EC2 Instance,每一个配置16核,32GB内存 和 SSD EBS 存储,一个用作client,另一个运行 servers

  • 搜索引擎测试

    • RediSearch:5个分片运行在5个Redis Masters上,没有负载均衡,冗余或内置的缓存,此设置最多使用了Server机器的5个CPU核心。

    • ElasticSearch:一个实例有5个分片,过滤器缓存已禁用,在基准测试中,ElasticSearch使用了所有的16个CPU核心,因为它是多线程的。

    • Solr:solr-cloud的两个实例,每一个实例上面运行2个分片,缓存是完全禁用的,在基准测试过程中,Solr也是使用了所有的16个CPU核心。