RediSearch is a Redis module that adds secondary indexing, full-text search, aggregation, and vector similarity search directly into the in-memory data store. It operates as an in-process search engine, extending the core key-value store with capabilities for indexing hash and JSON documents, enabling fast field-level lookups beyond primary key access.
The module provides a full-text search engine built on inverted indexes, supporting stemming, fuzzy matching, and relevance scoring via tf-idf. It also includes a vector similarity search engine using a Hierarchical Navigable Small World graph for approximate nearest neighbor search, and a server-side aggregation pipeline that groups, filters, and transforms search results without requiring data export. For structured data, it indexes comma-separated tags and numeric values as sorted sets, enabling fast inclusion, exclusion, and range queries alongside text searches.
Beyond search, RediSearch supports geospatial querying for location-based filtering, auto-complete suggestions for type-ahead inputs, and distributed query routing that scatters searches across cluster shards and merges partial results. It indexes JSON documents using JSONPath expressions, supporting nested arrays and mixed data types, and can index arrays as text, numeric, tag, or vector fields. The module also provides programmatic interfaces for executing Redis commands and constructing typed replies, along with memory management and replication primitives for custom command development.