Redis 中文文档 Redis 中文文档
指南
redis.io (opens new window)
指南
redis.io (opens new window)
  • 关于
    • Redis 开源治理
    • Redis 发布周期
    • Redis 赞助商
  • 入门
  • 数据类型
  • Redis Stack
  • 命令
  • 手册

RediSearch


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


Overview


RediSearch is a Redis module that provides querying, secondary indexing, and full-text search for Redis. To use RediSearch, you first declare indexes on your Redis data. You can then use the RediSearch query language to query that data.

RediSearch uses compressed, inverted indexes for fast indexing with a low memory footprint.

RediSearch indexes enhance Redis by providing exact-phrase matching, fuzzy search, and numeric filtering, among many other features.

Getting started


If you're just getting started with RediSearch, check out the official RediSearch tutorial. Also, consider viewing our RediSearch video explainer.

The fastest way to get up and running with RediSearch is by using the Redis Stack Docker image.

Trying RediSearch


To try RediSearch, either use the RediSearch Docker image, or create a free Redis Cloud Essentials account to get a RediSearch instance in the cloud.

Docker image


The Redis Stack Docker image makes it easy to try RediSearch.

To create a local RediSearch container, run:

  1. ``` shell
  2. $ docker run -p 6379:6379 redis/redis-stack-server:latest
  3. ```

To connect to this instance, run:

  1. ``` shell
  2. $ redis-cli
  3. ```

Documentation


The RediSearch documentation provides a complete overview of RediSearch. Helpful sections include:

The RediSearch quick start
The RediSearch command reference
References on features such as aggregations, highlights, stemming, and spelling correction.

Mailing list and forum


Got questions? Join us in #redisearch on the Redis Discord server.

If you have a more detailed question, drop us a line on the RediSearch Discussion Forum.

Client libraries


You can use any standard Redis client library to run RediSearch commands, but it's easiest to use a library that wraps the RediSearch API.

Project Language License Author Stars Comment
:--- :--- :--- :--- :--- :---
jedis Java MIT Redis
redis-py Python MIT Redis
node-redis Node.js MIT Redis
nredisstack .NET MIT Redis
redis-om Python BSD Redis
lettusearch Java Apache 2.0 Redis
spring-redisearch Java Apache 2.0 Redis
redis-om-spring Java BSD Redis
redisearch-go Go BSD Redis
rueidis Go Apache 2.0 Rueian
Redis-om JavaScript BSD Redis
Redis.OM .NET BSD Redis
redisearch-php PHP MIT Ethan Hann
php-redisearch PHP MIT MacFJA MIT
redisearch-api-rs Rust BSD Redis
redi_search_rails Ruby MIT Dmitry Polyakovsky
redisearch-rb Ruby MIT Victor Ruiz
redi_search Ruby MIT Nick Pezza

RediSearch features


Full-Text indexing of multiple fields in Redis hashes
Incremental indexing without performance loss
Document ranking (using tf-idf, with optional user-provided weights)
Field weighting
Complex boolean queries with AND, OR, and NOT operators
Prefix matching, fuzzy matching, and exact-phrase queries
Support for double-metaphone phonetic matching
Auto-complete suggestions (with fuzzy prefix suggestions)
Stemming-based query expansion in many languages (using Snowball )
Support for Chinese-language tokenization and querying (using Friso )
Numeric filters and ranges
Geospatial searches using Redis geospatial indexing
A powerful aggregations engine
Supports for all utf-8 encoded text
Retrieve full documents, selected fields, or only the document IDs
Sorting results (for example, by creation date)

Cluster support


RediSearch has a distributed cluster version that scales to billions of documents across hundreds of servers. At the moment, distributed RediSearch is available as part of Redis Enterprise Cloud and Redis Enterprise Software.

See RediSearch on Redis Enterprise for more information.

License


RediSearch is licensed under the Redis Source Available License 2.0 (RSALv2) or the Server Side Public License v1 (SSPLv1).
Last Updated: 2023-09-03 19:17:54