RediSearch

Queries, secondary indexing, and full-text search for Redis

Discord Github

RediSearch is a source available Redis module that provides queryability, secondary indexing, and full-text search for Redis.

Overview

RediSearch provides secondary indexing, full-text search, and a query language for Redis. These feature enable multi-field queries, aggregation, exact phrase matching, and numeric filtering for text queries.

Client libraries

Official and community client libraries are available for Python, Java, JavaScript, Ruby, Go, C#, and PHP.

See the clients page for the full list.

Cluster support

RediSearch provides a distributed cluster version that scales to billions of documents and hundreds of servers.

Commercial support

Commercial support for RediSearch is provided by Redis Ltd. See the Redis Ltd. website for more info and contact information.

Primary features

RediSearch supports the following features:

  • Secondary indexing
  • Multi-field queries
  • Aggregation
  • Full-text indexing of multiple fields in a documents
  • Incremental indexing without performance loss
  • Document ranking (provided manually by the user at index time)
  • Boolean queries with AND, OR, NOT operators between sub-queries
  • Optional query clauses
  • Prefix-based searches
  • Field weights
  • Auto-complete suggestions (with fuzzy prefix suggestions)
  • Exact-phrase search and slop-based search
  • Stemming-based query expansion for many languages (using Snowball)
  • Support for custom functions for query expansion and scoring (see Extensions)
  • Numeric filters and ranges
  • Geo-filtering using the Redis own geo commands
  • Unicode support (UTF-8 input required)
  • Retrieval of full document contents or only their ids
  • Document deletion and updating with index garbage collection
  • Partial and conditional document updates

Supported Platforms

RediSearch is developed and tested on Linux and macOS on x86_64 CPUs.

Atom CPUs are not supported.

References

Videos

  1. RediSearch? - RedisConf 2020
  2. RediSearch Overview - RedisConf 2019
  3. RediSearch & CRDT - Redis Day Tel Aviv 2019

Course

Blog posts

  1. Introducing RediSearch 2.0
  2. Getting Started with RediSearch 2.0
  3. Mastering RediSearch / Part I
  4. Mastering RediSearch / Part II
  5. Mastering RediSearch / Part III
  6. Building Real-Time Full-Text Site Search with RediSearch
  7. RediSearch Version 1.6 Adds Features, Improves Performance
  8. RediSearch 1.6 Boosts Performance Up to 64%

Mailing List / Forum

Got questions? Feel free to ask at the RediSearch forum.

License

Redis Source Available License Agreement - see LICENSE


Commands

Commands Overview

Quick start

Quick start guide

Configuration Parameters

RediSearch supports multiple module configuration parameters. Some of these parameters can only be set at load-time, while other parameters can be set either on load-time or on run-time.

Developer notes

Notes on debugging, testing and documentation

Client Libraries

List of RediSearch client libraries

Administration Guide

Administration of the RediSearch module

Reference

Reference

Design Documents

Design Documents details

Indexing JSON documents

Indexing and searching JSON documents

Chinese

Chinese support