MCPcopy Index your code
hub / github.com/RediSearch/RediSearch

github.com/RediSearch/RediSearch @v99.99.99

Chat with this repo
repository ↗ · DeepWiki ↗ · release v99.99.99 ↗ · + Follow
7,822 symbols 28,766 edges 758 files 1,459 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Discord

Total Coverage Unit Tests Flow Tests
codecov codecov codecov

Latest Release

Latest 2.8 Latest 2.6

RediSearch

[!NOTE] Starting with Redis 8, Redis Query Engine (RediSearch) is integral to Redis. You don't need to install this module separately.

We no longer release standalone versions of RediSearch.

See https://github.com/redis/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.

Documentation

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

Questions?

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

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)
  • Geoshape indexing
  • Vector similarity search - KNN, filtered KNN and range query

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 Cloud and Redis Enterprise Software.

See RediSearch on Redis Enterprise for more information.

License

Starting with Redis 8, RediSearch is licensed under your choice of: (i) Redis Source Available License 2.0 (RSALv2); (ii) the Server Side Public License v1 (SSPLv1); or (iii) the GNU Affero General Public License version 3 (AGPLv3). Please review the license folder for the full license terms and conditions. Prior versions remain subject to (i) and (ii).

Code contributions

By contributing code to this Redis module in any form, including sending a pull request via GitHub, a code fragment or patch via private email or public discussion groups, you agree to release your code under the terms of the Redis Software Grant and Contributor License Agreement. Please see the CONTRIBUTING.md file in this source distribution for more information. For security bugs and vulnerabilities, please see SECURITY.md.

Extension points exported contracts — how you extend this code

TraversalFilter (Interface)
A mechanism to control which nodes are visited during iteration. [3 implementers]
src/redisearch_rs/trie_rs/src/iter/filter.rs
ValidQIntSize (Interface)
(no doc) [3 implementers]
src/redisearch_rs/qint/src/lib.rs
IntoCString (Interface)
Extension trait to convert to CString. [1 implementers]
src/redisearch_rs/trie_bencher/src/c_map.rs
AsTrieTermView (Interface)
Extension trait to provide that uses a view on a `CString`. This is useful for passing the string to C functions that ex [1 …
src/redisearch_rs/trie_bencher/src/c_map.rs

Core symbols most depended-on inside this repo

assertEqual
called by 2934
tests/pytests/common.py
slice_from_s
called by 1003
deps/snowball/runtime/utilities.c
slice_del
called by 564
deps/snowball/runtime/utilities.c
rm_free
called by 540
src/rmalloc.h
getConnectionByEnv
called by 457
tests/pytests/common.py
debug_cmd
called by 397
tests/pytests/common.py
config_cmd
called by 394
tests/pytests/common.py
find_among_b
called by 370
deps/snowball/runtime/utilities.c

Shape

Function 6,391
Class 774
Method 612
Enum 41
Interface 4

Languages

C59%
Python21%
C++16%
Rust5%

Modules by API surface

tests/pytests/test.py204 symbols
srcutil/lemon.c196 symbols
deps/miniz/miniz.c181 symbols
deps/fast_float/fast_float.h159 symbols
src/spec.c130 symbols
src/module.c123 symbols
tests/pytests/common.py118 symbols
tests/cpptests/redismock/redismock.cpp103 symbols
tests/pytests/test_debug_commands.py89 symbols
src/index.c86 symbols
src/query.c85 symbols
src/result_processor.c79 symbols

For agents

$ claude mcp add RediSearch \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact