title: RediSearch 2.6 release notes

summary: Search using wildcard queries for TEXT and TAG fields, multi-value indexing and querying of attributes for any attribute type, and indexing double-precision floating-point vectors and range queries from a given vector.

title: Requirements

text:
RediSearch v2.6.32 requires:

- Minimum Redis compatibility version (database): 6.0.16
- Minimum Redis Enterprise Software version (cluster): 6.2.8

title: v2.6.32 (August 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6405](https://github.com/redisearch/redisearch/pull/6405) Validate compatibility against RedisJSON version upon open key (MOD-10298).
- [#6419](https://github.com/redisearch/redisearch/pull/6419) Errors when loading schema from RDB get incorrectly cleared (MOD-10307).
- [#6604](https://github.com/redisearch/redisearch/pull/6604) `FLUSHDB` while active queries are still running could lead to a crash due to premature release of the CURSOR (MOD-10681).

Improvements:
- [#6467](https://github.com/redisearch/redisearch/pull/6467) Handle excessive error logs when handling JSON.DEL errors (MOD-10266).
- [#6659](https://github.com/redisearch/redisearch/pull/6659) Time measurement on `FT.PROFILE` using thread-independent clock mechanism (MOD-10622).

title: v2.6.31 (June 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6349](https://github.com/redisearch/redisearch/pull/6349) Search on terms larger than 128 characters could lead to missing matches (MOD-6786).
- [#6305](https://github.com/redisearch/redisearch/pull/6305) While iterating over a large index, frequent document updates could hit the `TIMEOUT`, causing a crash (MOD-9856).
- [#6191](https://github.com/redisearch/redisearch/pull/6191) Reindexing from an RDB with multiple vector indexes could lead to a crash because of the cluster health check - NodeWD (MOD-9220).

title: v2.6.30 (May 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6032](https://github.com/redisearch/redisearch/pull/6032) `FT.CURSOR...DEL` while another thread is reading it could lead to a crash (MOD-9408,MOD-9432,MOD-9433,MOD-9434,MOD-9435)
- [#5965](https://github.com/redisearch/redisearch/pull/5965) Indexing documents using `TEXT` without the text in the documents leads to an `inf` or `nan` score (MOD-9423)
- [#6058](https://github.com/redisearch/redisearch/pull/6058) Avoid lazy expiration in background indexing for Active-Active setup, preventing keys from expiring incorrectly (MOD-9486)
- [#5962](https://github.com/redisearch/redisearch/pull/5962) Empty results with RESP3 due to the `TIMEOUT` even if setting to deliver partial results using the `ON_TIMEOUT` policy (MOD-8482)
- [#5962](https://github.com/redisearch/redisearch/pull/5962) Cursor with RESP3 on `FT.AGGREGATE` is never depleted, blocking queries if the cursor limit is achieved (MOD-8515)
- [#5962](https://github.com/redisearch/redisearch/pull/5962) Using `FT.CURSOR READ` on queries that timed out led to fewer results than expected (MOD-8606)

Improvements:
- [#6009](https://github.com/redisearch/redisearch/pull/6009) Parser for intersections on parentheses and sub-queries order won't affect full-text scores (MOD-9278)
- [#5962](https://github.com/redisearch/redisearch/pull/5962) Fixed a coordinator race condition preventing the premature release and avoiding errors and inconsistencies during query executions (MOD-8794)

title: v2.6.29 (April 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `LOW` No need to upgrade unless there are new features you want to use.

Improvements:
- [#5940](https://github.com/redisearch/redisearch/pull/5940) Improved performance (reduced CPU time) of collecting vector index statistics (MOD-9354)
- [#5816](https://github.com/redisearch/redisearch/pull/5816) Improved accuracy of index memory reporting by correcting a bug that caused negative memory counts (MOD-5904)

title: v2.6.28 (March 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `LOW` No need to upgrade unless there are new features you want to use.

Bug fixes:
- [#5712](https://github.com/redisearch/redisearch/pull/5712) Weights in the query string are ignored if using `SCORER BM25` (MOD-7896)

title: v2.6.27 (February 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `LOW` No need to upgrade unless there are new features you want to use.

Bug fixes:

- [#5648](https://github.com/redisearch/redisearch/pull/5648) `FT.SEARCH` using Cyrillic characters and wildcards delivering no results (MOD-7944)

title: v2.6.26 (February 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5606](https://github.com/redisearch/redisearch/pull/5606) Changes on the memory block reading logic could cause crash on `FT.SEARCH` with error "_Redis 7.4.2 crashed by signal: 11, si_code: 128_"

Known limitations:
- Only the first 128 characters of string fields are normalized to lowercase during ingestion (for example, on `HSET`).
    Example:

    [code example]

    The `FT.SEARCH` command will return no documents.

title: v2.6.25 (January 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5484](https://github.com/redisearch/redisearch/pull/5484) NOSTEM option does not work on query, just tokenising (MOD-7634)
- [#5543](https://github.com/redisearch/redisearch/pull/5543) Querying for the latest document added to the index may result in a crash if the last block is not read (MOD-8561).

title: v2.6.24 (January 2025)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `SECURITY`: There are security fixes in the release.

- **Security and privacy:**
  - [#5458](https://github.com/redisearch/redisearch/pull/5458) (CVE-2024-51737) Query: potential out-of-bounds write (MOD-8486)

- Bug fixes:
  - [#5302](https://github.com/redisearch/redisearch/pull/5302) Prefix/Infix/Suffix queries longer than 1024 chars could cause a crash (MOD-7882)
  - [#5281](https://github.com/redisearch/redisearch/pull/5281) `FT.CURSOR READ` retrieving deleted `TAG` fields cause a crash (MOD-8011)
  - [#5168](https://github.com/redisearch/redisearch/pull/5168) Cursors from queries that timed out weren't depleted causing exhaustion of number of cursors available(MOD-8009)

title: v2.6.21 (August 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

- Bug fixes:
  - [#4944](https://github.com/redisearch/redisearch/pull/4944) Adjusting the module configuration to avoid routing overload on the first shard in a clustered database (MOD-7505)
  - [#4897](https://github.com/redisearch/redisearch/pull/4897) - `FT.AGGREGATE` with `VERBATIM` option is not handled by the shards in cluster mode (MOD-7463)
  - [#4918](https://github.com/redisearch/redisearch/pull/4918) - Union query, similar to `"is|the"`, starting with 2 [stopwords](https://redis.io/docs/latest/develop/ai/search-and-query/advanced-concepts/stopwords/) could cause a crash (MOD-7495)
  - [#4919](https://github.com/redisearch/redisearch/pull/4919) - Counting twice the field statistics at the `#search` section of an `INFO` response (MOD-7339)
  - [#4923](https://github.com/redisearch/redisearch/pull/4923) - Loop when using the wildcard `w'term'` and prefix/infix/suffix pattern `'ter*'`, causing the shard to restart (MOD-7453)
  - [#4954](https://github.com/redisearch/redisearch/pull/4954) `FT.PROFILE` on `AGGREGATE` numeric queries could cause a crash due to reusing the internal `CURSOR` in a large range of numeric values (MOD-7454)

title: v2.6.20 (July 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

- Bug fixes:
  - [#4755](https://github.com/RediSearch/RediSearch/pull/4755) - Correct return the maximum value for negative values when using `MAX` reducer (MOD-7252)
  - [#4733](https://github.com/RediSearch/RediSearch/pull/4733) - Separators ignored when escaping backslash `\` after the escaped character such as in `hello\\,world` ignoring `,` (MOD-7240)
  - [#4717](https://github.com/RediSearch/RediSearch/pull/4717) - Sorting by multiple fields as in `SORTBY 2 @field1 @field2` was ignoring the subsequent field (MOD-7206)

- Improvements:
  - [#4793](https://github.com/RediSearch/RediSearch/pull/4793) - Add character validations to simple string replies and escape it when required(MOD-7258)
  - [#4769](https://github.com/RediSearch/RediSearch/pull/4769) - Indicate which value is missing on the error message at the aggregation pipeline (MOD-7201)
  - [#4746](https://github.com/RediSearch/RediSearch/pull/4746) - `GROUPBY` recursion cleanup (MOD-7245)

title: v2.6.19 (June 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

- Bug fixes:

  - [#4616](https://github.com/RediSearch/RediSearch/pull/4616) Shards become unresponsive when using FT.AGGREGATE with APPLY 'split(...)' (MOD-6759)
  - [#4557](https://github.com/RediSearch/RediSearch/pull/4557) FT.EXPLAIN returns additional } when querying using wildcards (MOD-6768)
  - [#4647](https://github.com/RediSearch/RediSearch/pull/4647) FT.DROPINDEX with DD flag deleted keys in one AA cluster but not the others (MOD-1855)

- Improvements:

  - [#4599](https://github.com/RediSearch/RediSearch/pull/4599) Report additional memory consumed by the TAG and TEXT tries (MOD-5902)
  - [#4688](https://github.com/RediSearch/RediSearch/pull/4688) Add missing FT.INFO fields when used within a cluster (MOD-6920)

title: v2.6.18 (April 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:

  - [#4557](https://github.com/RediSearch/RediSearch/pull/4557) Additional "`}`" on wildcards replies for `FT.EXPLAIN` (MOD-6768)

title: v2.6.17 (April 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#4524](https://github.com/RediSearch/RediSearch/pull/4524) `FT.CURSOR READ` in a numeric query causing a crash (MOD-6597)
  - [#4543](https://github.com/RediSearch/RediSearch/pull/4543) `FT.SEARCH` accessing an inexistent memory address causes a crash if using deprecated `FT.ADD` command (MOD-6599)
  - [#4535](https://github.com/RediSearch/RediSearch/pull/4535) `FT.PROFILE` with incorrect arguments could cause a crash on cluster setup (MOD-6791)
  - [#4540](https://github.com/RediSearch/RediSearch/pull/4540) Unfree memory from an existing RDB while re-indexing loading a new RDB could cause a crash (MOD-6831, 6810)
  - [#4485](https://github.com/RediSearch/RediSearch/pull/4485) Some parameter settings using just prefixes instead of full values were working (MOD-6709)

- Improvements:

  - [#4502](https://github.com/RediSearch/RediSearch/pull/4502) Handle error properly when trying to execute Search commands on cluster setup as part of `MULTI ... EXEC` or LUA script (MOD-6541)

title: v2.6.16 (March 2024)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `MODERATE` : Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#4477](https://github.com/RediSearch/RediSearch/pull/4477) Split `INFIX` and `SUFFIX` report on `FT.EXPLAIN` and `FT.EXPLAINCLI` (MOD-6186)
  - [#4468](https://github.com/RediSearch/RediSearch/pull/4468) Memory leak upon suffix query for a `TAG` indexed with `WITHSUFFIXTRIE` (MOD-6644)
  - [#4407](https://github.com/RediSearch/RediSearch/pull/4407) Clustered `FT.SEARCH` hangs forever without replying when an invalid topology is found (MOD-6557)
  - [#4359](https://github.com/RediSearch/RediSearch/pull/4359) Searching for a synonym will iterate in the same group multiple times, causing a performance hit (MOD-6490)
  - [#4310](https://github.com/RediSearch/RediSearch/pull/4310) Memory tracking on cluster setups causing high memory usage and potentially Out-of-Memory (MOD-6123, MOD-5639)

title: v2.6.15 (December 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#4244](https://github.com/RediSearch/RediSearch/pull/4244), [#4255](https://github.com/RediSearch/RediSearch/pull/4255) Profiling `FT.AGGREGATE` using the `WITHCURSOR` flag causes a crash due to timeout (MOD-5512)
  - [#4238](https://github.com/RediSearch/RediSearch/pull/4238) Memory excessively growing on databases caused by unbalanced nodes on inverted index trie (MOD-5880, MOD-5952, MOD-6003)
  - [#3995](https://github.com/RediSearch/RediSearch/pull/3995) `FT.CURSOR READ` with geo queries causing a crash when data is updated between the cursor reads (MOD-5646)
  - [#4155](https://github.com/RediSearch/RediSearch/pull/4155) `FT.SEARCH` not responding when using TLS encryption on Amazon Linux 2 (MOD-6012)

- Improvements:

  - [#4176](https://github.com/RediSearch/RediSearch/pull/4176) Initialization of the maximum numeric value range leading to a better balance of the index leaf splitting (MOD-6232)
  - [#4123](https://github.com/RediSearch/RediSearch/pull/4123) Possibly problematic index name alias check-in command multiplexing (MOD-5945)
  - [#4195](https://github.com/RediSearch/RediSearch/pull/4195) Query optimization when predicate contains multiple `INTERSECTION` (AND) of `UNION` (OR) (MOD-5910)

title: v2.6.14 (November 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `SECURITY`: There are security fixes in the release.

Details:

- Bug fixes:

  - [#3783](https://github.com/RediSearch/RediSearch/pull/3783) Broken lower and upper `APPLY` functions in `FT.AGGREGATE` on `DIALECT 3` (MOD-5041)
  - [#3823](https://github.com/RediSearch/RediSearch/pull/3823) `APPLY` or `FILTER` expression causing a leak (MOD-5751)
  - [#3899](https://github.com/RediSearch/RediSearch/pull/3899) Connection using TLS fail on Redis (MOD-5768)
  - [#3910](https://github.com/RediSearch/RediSearch/pull/3910) Heavy document updates causing memory growth if memory blocks weren't properly released (MOD-5181)(MOD-5757)
  - [#3928](https://github.com/RediSearch/RediSearch/pull/3928) Queries with `WITHCURSOR` making memory growth since `CURSOR` wasn't invalidated in the shards (MOD-5580)
  - [#3946](https://github.com/RediSearch/RediSearch/pull/3946) Vector range query could cause Out-of-Memory due to memory corruption (MOD-5791)
  - [#3972](https://github.com/RediSearch/RediSearch/pull/3972) Adding new nodes to OSS cluster can cause a crash (MOD-5778)
  - [#3957](https://github.com/RediSearch/RediSearch/pull/3957) After cleaning the index, the GC could corrupt unique values (MOD-5815)
  - [#4002](https://github.com/RediSearch/RediSearch/pull/4002) Setting a low `MAXIDLE` parameter value in `FT.AGGREGATE` causes a crash (MOD-5608)

- Security and privacy:

  - [#3844](https://github.com/RediSearch/RediSearch/pull/3844) Limits maximum phonetic length to avoid vulnerability (MOD 5767)

title: v2.6.12 (July 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#3557](https://github.com/RediSearch/RediSearch/pull/3557) `TIMEOUT` configuration on `FT.AGGREGATE` query being ignored (MOD-5208)
  - [#3552](https://github.com/RediSearch/RediSearch/pull/3552) `FT.CURSOR READ` on `JSON` numeric queries not returning results (MOD-4830)
  - [#3606](https://github.com/RediSearch/RediSearch/pull/3606) Update numeric inverted index `numEntries` avoiding excessive memory consumption (MOD-5181)
  - [#3597](https://github.com/RediSearch/RediSearch/pull/3597) Duplicating alias as output name on `FT.AGGREGATE` reducer (`REDUCE` argument) doesn't return results (MOD-5268)
  - [#3654](https://github.com/RediSearch/RediSearch/pull/3654) Added check for `@` prefix on `GROUPBY` fields returning an error instead of wrong results

- Improvements:

  - [#3628](https://github.com/RediSearch/RediSearch/pull/3628) Background indexing scanning performance (MOD-5259)
  - [#3259](https://github.com/RediSearch/RediSearch/pull/3259) Allow alias name beginning with `as`
  - [#3641](https://github.com/RediSearch/RediSearch/pull/3641) Indexing sanitizing trigger in heavy data updates scenario

title: v2.6.9 (April 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#3468](https://github.com/RediSearch/RediSearch/pull/3468) KNN searching for 0 vectors with a filter resulted in crash (MOD-5006)
  - [#3499](https://github.com/RediSearch/RediSearch/pull/3499) `MAXSEARCHRESULTS` set to `0` causing `FT.SEARCH` to crash (MOD-5062)
  - [#3494](https://github.com/RediSearch/RediSearch/pull/3494) Removing `MAXSEARCHRESULTS` limit causes crash on `FT.AGGREGATE` (MOD-4974)
  - [#3504](https://github.com/RediSearch/RediSearch/pull/3504) Uninitialised vector similarity query parameter bug (MOD-5063)

- Improvements:

  - [#3430](https://github.com/RediSearch/RediSearch/pull/3430) Improve min-max heap structure for better readability and performance
  - [#3450](https://github.com/RediSearch/RediSearch/pull/3450) Display `NOHL` option in `FT.INFO` command
  - [#3534](https://github.com/RediSearch/RediSearch/pull/3534) Vector Similarity 0.6.1: Improve multi-value index deletion logic ([#346](https://github.com/RedisAI/VectorSimilarity/pull/346))

title: v2.6.6 (March 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3403](https://github.com/RediSearch/RediSearch/pull/3403) Fix suffix and prefix matching when using `CASESENSITIVE` flag (MOD-4872)

- Improvements:

  - [#3397](https://github.com/RediSearch/RediSearch/pull/3397) Improve the Vecsim initial capacity default value

title: v2.6.5 (February 2023)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#3354](https://github.com/RediSearch/RediSearch/pull/3354) Library update preventing a crash during cluster failover (MOD-4560)
  - [#3357](https://github.com/RediSearch/RediSearch/pull/3357) Handling division by zero in expressions preventing nodes to restart (MOD-4296)
  - [#3332](https://github.com/RediSearch/RediSearch/pull/3332) Fix wildcards `*` queries on `DIALECT 2` and `DIALECT 3`

- Improvements:

  - [#3361](https://github.com/RediSearch/RediSearch/pull/3361) Enable the use of IPv6 for all cluster and module communication

title: v2.6.4 (December 2022)

text:
This is a maintenance release for RediSearch 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3289](https://github.com/RediSearch/RediSearch/pull/3289) Potential crash when querying multiple fields (MOD-4639)
  - [#3279](https://github.com/RediSearch/RediSearch/pull/3279) Potential crash when querying using wildcard `*` on TAG field (MOD-4653)

- Improvements:

  - [#3256](https://github.com/RediSearch/RediSearch/pull/3256) Support IPv6 on cluster set command
  - [#3194](https://github.com/RediSearch/RediSearch/pull/3194) Add the query dialects that are in use to `FT.INFO` and `INFO MODULE` commands (MOD-4232)
  - [#3258](https://github.com/RediSearch/RediSearch/pull/3258) Add the module version and Redis version to `INFO MODULE`

title: v2.6 GA (v2.6.3) (November 2022)

text: This is the General Availability release of RediSearch 2.6.

title: Highlights

text:
This new major version introduces the ability to search using **wildcard queries** for TEXT and TAG fields. This enables the frequently requested feature **suffix search** (`*vatore` and `ant?rez` are now supported).
In addition, the 2.6 release is all about **multi-value indexing and querying of attributes** for any attribute type ( [Text](#index-json-arrays-as-text), [Tag](#index-json-arrays-as-tag), [Numeric](#index-json-arrays-as-numeric), [Geo](#index-json-arrays-as-geo) and [Vector](#index-json-arrays-as-vector)) defined by a [JSONPath]() leading to an array or to multiple scalar values.
Lastly, this version adds support for indexing double-precision floating-point vectors and range queries from a given vector.

title: What's new in 2.6

title: Details

text:
- Improvements:

  - [#2886](https://github.com/RediSearch/RediSearch/pull/2886) Support for [wildcard queries](#wildcard-matching) for TEXT and TAG fields, where
    - `?` matches any single character
    - `*` matches zero or more characters
    - use `'` and `\` for escaping, other special characters are ignored
    - [#2932](https://github.com/RediSearch/RediSearch/pull/2932) Optimized wildcard query support (i.e., suffix trie)
  - Multi-value indexing and querying
    - [#2819](https://github.com/RediSearch/RediSearch/pull/2819), [#2947](https://github.com/RediSearch/RediSearch/pull/2947) Multi-value text search - perform full-text search on an [array of strings or on a JSONPath](#index-json-arrays-as-tag) leading to multiple strings
    - [#3131](https://github.com/RediSearch/RediSearch/pull/3131) Geo [#3118](https://github.com/RediSearch/RediSearch/pull/3118) Vector [#2985](https://github.com/RediSearch/RediSearch/pull/2985) Numeric [#3180](https://github.com/RediSearch/RediSearch/pull/3180) Tag
    - [#3060](https://github.com/RediSearch/RediSearch/pull/3060) Return JSON rather than scalars from multi-value attributes.  This is enabled via Dialect 3 in order not to break existing applications.
    - Support indexing and querying of multi-value JSONPath attributes and/or arrays (requires JSON >2.4.1)
    - [#3182](https://github.com/RediSearch/RediSearch/pull/3182) Support for `SORTABLE` fields on JSON in an implicit un-normalized form (UNF)
  - [#3156](https://github.com/RediSearch/RediSearch/pull/3156) Vector similarity 0.5.1:
    - Better space optimization selection ([#175](https://github.com/RedisAI/VectorSimilarity/pull/175))
    - Aligning index capacity with block size ([#177](https://github.com/RedisAI/VectorSimilarity/pull/177))
    - [#3129](https://github.com/RediSearch/RediSearch/pull/3129) Support FLOAT64 as vector data type
    - [#3176](https://github.com/RediSearch/RediSearch/pull/3176) Range query support
    - [#3105](https://github.com/RediSearch/RediSearch/pull/3105) Support query attributes for vector queries

- Bugs (since 2.6-RC1 / v2.6.1):

  - [#3197](https://github.com/RediSearch/RediSearch/pull/3197) Failure to create temporary indices
  - [#3098](https://github.com/RediSearch/RediSearch/pull/3098) Wrong return value in Geo query
  - [#3230](https://github.com/RediSearch/RediSearch/issues/3230) Use the correct total number of matching records

With this release, we stop supporting direct upgrades from RediSearch v1.4 and v1.6 that are End-of-Life. Such RDB files can still be upgraded to RediSearch 2.0 first.

If indexing and querying RedisJSON data structures, this version is best combined with RedisJSON 2.4 GA (v2.4.1 onwards).


title: RediSearch 2.8 release notes

summary: RESP3 support. Geo Polygon Search. Performance improvements.

page_type: content

title: Requirements

role: overview

text:
RediSearch v2.8.32 requires:

- Minimum Redis compatibility version (database): 7.2
- Minimum Redis Enterprise Software version (cluster): 7.2.4

title: v2.8.32 (November 2025)

role: content

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Improvements:
- [#7157](https://github.com/RediSearch/RediSearch/pull/7157) Show background indexing OOM warning in `FT.AGGREGATE` reply in RESP3.
- [#7380](https://github.com/RediSearch/RediSearch/pull/7380) Rename `FT.PROFILE` counter fields.
- [#7366](https://github.com/RediSearch/RediSearch/pull/7366) Reduce temporary memory overhead upon index load from RDB.
- [#7393](https://github.com/RediSearch/RediSearch/pull/7393) Enhance `FT.PROFILE` with vector search execution details.
- [#7480](https://github.com/RediSearch/RediSearch/pull/7480) Ensure full profile output on timeout with RETURN policy.

Bug Fixes:
- [#7216](https://github.com/RediSearch/RediSearch/pull/7216) Fix a concurrency issue on Reducer in `FT.AGGREGATE`.
- [#7259](https://github.com/RediSearch/RediSearch/pull/7259) Fix underflow in BM25STD.
- [#7278](https://github.com/RediSearch/RediSearch/pull/7278) Report used memory as unsigned long long to avoid underflows.
- [#7340](https://github.com/RediSearch/RediSearch/pull/7340) Fix a rare leak in GC.
- [#7462](https://github.com/RediSearch/RediSearch/pull/7462) Fix Fork GC potential double-free on error path.
- [#7525](https://github.com/RediSearch/RediSearch/pull/7525) Avoid draining workers thread pool from `FLUSHDB` callback to avoid potential deadlocks.

Full Changelog: https://github.com/RediSearch/RediSearch/compare/v2.8.31...v2.8.32

title: v2.8.31 (October 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Bug Fixes:
- [#6960](https://github.com/RediSearch/RediSearch/pull/6960) - FT.INFO returns the wrong number of documents in OSS Cluster with replicas.
- [#6938](https://github.com/RediSearch/RediSearch/pull/6938) - Fix for the HIGHLIGHT feature, where if some fields have empty strings, wrong tokens might be highlighted.
- [#7049](https://github.com/RediSearch/RediSearch/pull/7049) - Avoid crashing in the FT.AGGREGATE command in clusters where different shards have different ON_TIMEOUT policies configured (fail vs return).

title: v2.8.30 (September 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6672](https://github.com/RediSearch/RediSearch/pull/6672) Fix potential file descriptor leak when OOM.
- [#6763](https://github.com/RediSearch/RediSearch/pull/6763) Fix potential deadlock during RDB loading in cases where the `INFO` command is sent to the server.

Full Changelog: https://github.com/RediSearch/RediSearch/compare/v2.8.29...v2.8.30.

title: v2.8.29 (August 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6599](https://github.com/redisearch/redisearch/pull/6599) `FLUSHDB` while active queries are still running could lead to a crash due to premature release of the CURSOR (MOD-10681).
- [#6418](https://github.com/redisearch/redisearch/pull/6418) Errors when loading schema from RDB get incorrectly cleared (MOD-10307).
- [#6405](https://github.com/redisearch/redisearch/pull/6405) Validate compatibility against RedisJSON version upon open key (MOD-10298).

Improvements:
- [#6466](https://github.com/redisearch/redisearch/pull/6466) Handle excessive error logs when handling JSON.DEL errors (MOD-10266).
- [#6663](https://github.com/redisearch/redisearch/pull/6663) Time measurement on `FT.PROFILE` using thread-independent clock mechanism (MOD-10622).
- [#6646](https://github.com/redisearch/redisearch/pull/6646) Response on RESP2/3 validation was inefficiently consuming excessive CPU cycles (MOD-9687).

title: v2.8.28 (June 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6207](https://github.com/redisearch/redisearch/pull/6207) Continuous increasing of index error counts on `FT.INFO` could lead to an overflow and memory leak (MOD-9396).
- [#6349](https://github.com/redisearch/redisearch/pull/6349) Search on terms larger than 128 characters could lead to missing matches (MOD-6786).
- [#6305](https://github.com/redisearch/redisearch/pull/6305) While iterating over a large index, frequent document updates could hit the `TIMEOUT`, causing a crash (MOD-9856).

Improvements:
- [#6340](https://github.com/redisearch/redisearch/pull/6340) Added a locking mechanism for collecting `FT.INFO` statistics when concurrently running the index sanitiser (MOD-10007, MOD-9761).

title: v2.8.27 (May 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#6191](https://github.com/redisearch/redisearch/pull/6191) Reindexing from RDB with multiple vector indices could lead to a crash due to cluster health check - NodeWD (MOD-9220,MOD-8809)
- [#6031](https://github.com/redisearch/redisearch/pull/6031) `FT.CURSOR...DEL` while another thread is reading it could lead to a crash (MOD-9408,MOD-9432,MOD-9433,MOD-9434,MOD-9435)
- [#5966](https://github.com/redisearch/redisearch/pull/5966) Indexing documents using `TEXT` without the text in the documents leads to an `inf` or `nan` score (MOD-9423)
- [#6057](https://github.com/redisearch/redisearch/pull/6057) Avoid lazy expiration in background indexing for Active-Active setup, preventing keys from expiring incorrectly (MOD-9486)
- [#6113](https://github.com/redisearch/redisearch/pull/6113) A timeout failure is returned when the `ON_TIMEOUT RETURN` policy is set to stop the collection of partial results - best effort (MOD-9612)

Improvements:
- [#6008](https://github.com/redisearch/redisearch/pull/6008) Parser for intersections on parentheses and sub-queries order won't affect full-text scores (MOD-9278)

title: v2.8.26 (April 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5864](https://github.com/redisearch/redisearch/pull/5864) Last query result using `FT.AGGREGATE` with `ON_TIMEOUT RETURN` and using multi-threading could be missing (MOD-9222)
- [#5863](https://github.com/redisearch/redisearch/pull/5863) Collecting empty results from shards during `FT.AGGREGATE` with RESP3 could cause a crash (MOD-9174)

Improvements:
- [#5938](https://github.com/redisearch/redisearch/pull/5938) Improved performance (reduced CPU time) of collecting vector index statistics(MOD-9354)
- [#5800](https://github.com/redisearch/redisearch/pull/5800) Improved accuracy of index memory reporting by correcting a bug that caused negative memory counts (MOD-5904)

Created on: 2025-04-21T14:51:40Z

title: v2.8.25 (March 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5709](https://github.com/redisearch/redisearch/pull/5709) Weights in the query string are ignored if using `SCORER BM25` (MOD-7896)
- [#5788](https://github.com/redisearch/redisearch/pull/5788) Cursor with `SORTBY` is never depleted, blocking queries if the cursor limit is reached (MOD-8483)
- [#5788](https://github.com/redisearch/redisearch/pull/5788) Empty results with RESP3 due to the `TIMEOUT`, even if `ON_TIMEOUT` is set to `RETURN`(MOD-8482)
- [#5788](https://github.com/redisearch/redisearch/pull/5788) Cursor with RESP3 on `FT.AGGREGATE` is never depleted, blocking queries if cursor the limit is achieved (MOD-8515)
- [#5788](https://github.com/redisearch/redisearch/pull/5788) Using `FT.CURSOR READ` on queries that timed out led to fewer results than expected (MOD-8606)
- [#5810](https://github.com/redisearch/redisearch/pull/5810) The `total_results` field of the `FT.AGGREGATE` command is not correct in RESP3 (MOD-9054)

Improvements:
- [#5788](https://github.com/redisearch/redisearch/pull/5788) Corrected a coordinator race condition that prevented premature release, avoiding errors and inconsistencies during query executions (MOD-8794)

title: v2.8.24 (February 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `LOW` No need to upgrade unless there are new features you want to use.

Bug fixes:
- [#5647](https://github.com/redisearch/redisearch/pull/5647) `FT.SEARCH` using Cyrillic characters and wildcards delivering no results (MOD-7944)

title: v2.8.23 (February 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5605](https://github.com/redisearch/redisearch/pull/5605) Changes on the memory block reading logic could cause crash on `FT.SEARCH` with error "_Redis 7.4.2 crashed by signal: 11, si_code: 128_"

Known limitations:
- Only the first 128 characters of string fields are normalized to lowercase during ingestion (for example, on `HSET`).
    Example:

    [code example]

    The `FT.SEARCH` command will return no documents.

title: v2.8.22 (January 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

Bug fixes:
- [#5475](https://github.com/redisearch/redisearch/pull/5475) NOSTEM option does not work on query, just tokenising (MOD-7634)
- [#5542](https://github.com/redisearch/redisearch/pull/5542) Querying for the latest document added to the index may result in a crash if the last block is not read (MOD-8561).

title: v2.8.21 (January 2025)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `SECURITY`: There are security fixes in the release.

**Security and privacy:**
- [#5457](https://github.com/redisearch/redisearch/pull/5457) (CVE-2024-51737) Query: potential out-of-bounds write (MOD-8486)

Bug fixes:
- [#5299](https://github.com/redisearch/redisearch/pull/5299) Prefix/Infix/Suffix queries longer than 1024 chars could cause a crash (MOD-7882)
- [#5303](https://github.com/redisearch/redisearch/pull/5303) Expired keys while background indexing could cause cross slot error when using `replicaof` (MOD-7949)
- [#5280](https://github.com/redisearch/redisearch/pull/5280) `FT.CURSOR READ` retrieving deleted `TAG` fields cause a crash (MOD-8011)
- [#5427](https://github.com/redisearch/redisearch/pull/5427) `FT.AGGREGATE` on numeric fields lead to `failed_calls` count increase on clustered DBs (MOD-8058)
- [#5242](https://github.com/redisearch/redisearch/pull/5242) Memory count on `bytes_collected` by the index sanitiser with missing values (MOD-8097, MOD-8114)
- [#5167](https://github.com/redisearch/redisearch/pull/5167) Cursors from queries that timed out weren't depleted causing exhaustion of number of cursors available(MOD-8009)

Improvements:
- [#5260](https://github.com/redisearch/redisearch/pull/5260) Optimizing index consumed memory with the creation only upon write operations (MOD-8125)

title: v2.8.17 (August 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

- Bug fixes:

  - [#4941](https://github.com/redisearch/redisearch/pull/4941) Adjusting the module configuration to avoid routing overload on the first shard in a clustered database (MOD-7505)
  - [#4950](https://github.com/redisearch/redisearch/pull/4950) `FT.PROFILE` on `AGGREGATE` numeric queries could cause a crash due to reusing internal `CURSOR` in large range of numeric values (MOD-7454)

title: v2.8.16 (August 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

- Bug fixes:

  - [#4896](https://github.com/redisearch/redisearch/pull/4896) - `FT.AGGREGATE` with `VERBATIM` option is not handled by the shards in cluster mode (MOD-7463)
  - [#4917](https://github.com/redisearch/redisearch/pull/4917) - Union query, similar to `"is|the"`, starting with 2 [stopwords](https://redis.io/docs/latest/develop/ai/search-and-query/advanced-concepts/stopwords/) could cause a crash (MOD-7495)
  - [#4921](https://github.com/redisearch/redisearch/pull/4921) - Counting twice the field statistics at the `#search` section of an `INFO` response (MOD-7339)
  - [#4939](https://github.com/redisearch/redisearch/pull/4939) - Query warning when using RESP3 response for reaching `MAXPREFIXEXPANSION` (MOD-7588)
  - [#4930](https://github.com/redisearch/redisearch/pull/4930) - Loop when using the wildcard `w'term'` and prefix/infix/suffix pattern `'ter*'` leading shard to restart (MOD-7453)
  - [#4912](https://github.com/redisearch/redisearch/pull/4912) - Avoid stemming expansion when querying for numeric values (MOD-7025)

title: v2.8.15 (July 2024)

text:
Update urgency: `HIGH` : There is a critical bug that may affect a subset of users. Upgrade!

- Bug fixes:
  - [#4754](https://github.com/RediSearch/RediSearch/pull/4754) - Correct return the maximum value for negative values when using `MAX` reducer (MOD-7252)
  - [#4737](https://github.com/RediSearch/RediSearch/pull/4737) - Separators ignored when escaping backslash `\` after the escaped character such as in `hello\\,world` ignoring `,` (MOD-7240)
  - [#4717](https://github.com/RediSearch/RediSearch/pull/4717) - Sorting by multiple fields `SORTBY 2 @field1 @field2` was ignoring the subsequent field(MOD-7206)
  - [#4803](https://github.com/RediSearch/RediSearch/pull/4803) - Keys expiring during query returning empty array (MOD-7010)
  - [#4794](https://github.com/RediSearch/RediSearch/pull/4794) - Index sanitiser (GC) trying to clean deleted numeric index could cause a crash (MOD-7303)

- Improvements:
  - [#4792](https://github.com/RediSearch/RediSearch/pull/4792) - Add character validations to simple string replies and escape it when required(MOD-7258)
  - [#4768](https://github.com/RediSearch/RediSearch/pull/4768) - Indicate which value is missing on the error message at the aggregation pipeline (MOD-7201)
  - [#4745](https://github.com/RediSearch/RediSearch/pull/4745) - `GROUPBY` recursion cleanup (MOD-7245)
  - [#4823](https://github.com/RediSearch/RediSearch/pull/4823) - Mechanism of keys expiration during the query execution clearing intermediate results

title: v2.8.14 (June 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

- Bug fixes:

  - [#4614](https://github.com/RediSearch/RediSearch/pull/4614) Shards become unresponsive when using `FT.AGGREGATE` with `APPLY 'split(...)'`(MOD-6759)
  - [#4556](https://github.com/RediSearch/RediSearch/pull/4556) `FT.EXPLAIN` returns additional `}` when querying using wildcards (MOD-6768)
  - [#4646](https://github.com/RediSearch/RediSearch/pull/4646) `FT.DROPINDEX` with `DD` flag deleted keys in one AA cluster but not the others (MOD-1855)

- Improvements:
  - [#4595](https://github.com/RediSearch/RediSearch/pull/4595) Report memory of the `TAG` and `TEXT` tries (MOD-5902)
  - [#4669](https://github.com/RediSearch/RediSearch/pull/4669) Inverted index memory counting (MOD-5977,MOD-5866)
  - [#4687](https://github.com/RediSearch/RediSearch/pull/4687) Add missing `FT.INFO` fields when used within a cluster (MOD-6920)

title: v2.8.13 (March 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#4481](https://github.com/RediSearch/RediSearch/pull/4481) Query syntax on `GEOSHAPE` accepting just prefix instead of complete predicate (MOD-6663)
  - [#4513](https://github.com/RediSearch/RediSearch/pull/4513) `FT.CURSOR READ` in a numeric query causing a crash (MOD-6597)
  - [#4534](https://github.com/RediSearch/RediSearch/pull/4534) `FT.PROFILE` with incorrect arguments could cause a crash on cluster setup (MOD-6791)
  - [#4530](https://github.com/RediSearch/RediSearch/pull/4530) Some parameter settings using just prefixes instead of full values were working (MOD-6709)
  - [#4539](https://github.com/RediSearch/RediSearch/pull/4539) Unfree memory while re-indexing a new RDB as it's loading could cause a crash (MOD-6831, 6810)
  - [#4498](https://github.com/RediSearch/RediSearch/pull/4498) Vector pre-filtered query (hybrid query) that times out causing a crash due to deadlock when trying to write a new document (MOD-6510, MOD-6244)
  - [#4495](https://github.com/RediSearch/RediSearch/pull/4495) `FT.SEARCH` accessing an inexistent memory address causes a crash if using the deprecated `FT.ADD` command (MOD-6599)

- Improvements:

  - [#4502](https://github.com/RediSearch/RediSearch/pull/4502) Handle error properly when trying to execute Search commands on cluster setup as part of `MULTI ... EXEC` or LUA script (MOD-6541)
  - [#4526](https://github.com/RediSearch/RediSearch/pull/4526) Adding detailed geometry info on error messages (MOD-6701)

title: v2.8.12 (March 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#4476](https://github.com/RediSearch/RediSearch/pull/4476) Split `INFIX` and `SUFFIX` report on `FT.EXPLAIN` and `FT.EXPLAINCLI` (MOD-6186)
  - [#4467](https://github.com/RediSearch/RediSearch/pull/4467) Memory leak upon suffix query for a `TAG` indexed with `WITHSUFFIXTRIE` (MOD-6644)
  - [#4403](https://github.com/RediSearch/RediSearch/pull/4403) Clustered `FT.SEARCH` hangs forever without replying when an invalid topology is found (MOD-6557)
  - [#4355](https://github.com/RediSearch/RediSearch/pull/4355) Searching for a synonym will iterate in the same group multiple times, causing a performance hit (MOD-6490)

- Improvements:

  - [#4313](https://github.com/RediSearch/RediSearch/pull/4313) Memory allocation patterns on the memory used to query `GEOSHAPE` types (MOD-6431)

title: v2.8.11 (January 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#4324](https://github.com/RediSearch/RediSearch/pull/4324) Internal cluster mechanism not waiting until all replies from shards causing a crash (MOD-6287)
  - [#4297](https://github.com/RediSearch/RediSearch/pull/4297) Execution loader when using `FT.AGGREGATE` with `LOAD` stage failing to buffer the right results potentially causing a crash (MOD-6385)

- Improvements:

  - [#4264](https://github.com/RediSearch/RediSearch/pull/4264) Granularity of the time reporting counters on `FT.PROFILE` (MOD-6002)

title: v2.8.10 (January 2024)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#4287](https://github.com/RediSearch/RediSearch/pull/4287) Re-index process while syncing from the replica causes a crash due to internal index variable initialization (MOD-6337, MOD-6336)
  - [#4249](https://github.com/RediSearch/RediSearch/pull/4249) Memory tracking on cluster setups causing high memory usage and potentially Out-of-Memory (MOD-6123, MOD-5639)
  - [#4244](https://github.com/RediSearch/RediSearch/pull/4244) Profiling `FT.AGGREGATE` using the `WITHCURSOR` flag with a `-` clause causes a crash due to timeout (MOD-5512)
  - [#3916](https://github.com/RediSearch/RediSearch/pull/3916) Expiring `JSON` documents while querying it causing a crash due to deadlock (MOD-5769, MOD-5895, MOD-6189, MOD-5895)
  - [#4235](https://github.com/RediSearch/RediSearch/pull/4235) Memory excessively growing on databases caused by unbalanced nodes on inverted index trie (MOD-5880, MOD-5952, MOD-6003)
  - [#4190](https://github.com/RediSearch/RediSearch/pull/4190) Profiling `FT.AGGREGATE` causes a crash on RESP3 replies (MOD-6250, MOD-6295)
  - [#4148](https://github.com/RediSearch/RediSearch/pull/4148), [#4038](https://github.com/RediSearch/RediSearch/pull/4038) `ON_TIMEOUT FAIL\RETURN` policies in the cluster setup not being respected (MOD-6035, MOD-5948, MOD-6090)
  - [#4110](https://github.com/RediSearch/RediSearch/pull/4110) Format of error response contains inconsistencies when timing out (MOD-6011, MOD-5965)
  - [#4104](https://github.com/RediSearch/RediSearch/pull/4104) `FT.SEARCH` not responding when using TLS encryption on Amazon Linux 2 (MOD-6012)
  - [#4009](https://github.com/RediSearch/RediSearch/pull/4009) In cluster setup does not return a timeout error for `FT.SEARCH` (MOD-5911)
  - [#3920](https://github.com/RediSearch/RediSearch/pull/3920) In cluster setup does not return a timeout error for `FT.AGGREGATE` (MOD-5209)
  - [#3914](https://github.com/RediSearch/RediSearch/pull/3914) `FT.CURSOR READ` with geo queries causing a crash when data is updated between the cursor reads (MOD-5646)
  - [#4220](https://github.com/RediSearch/RediSearch/pull/4220) Server crash when attempting to run the ForkGC (Garbage Collection routine) after dropping the index (MOD-6276)

- Improvements:

  - [#3682](https://github.com/RediSearch/RediSearch/pull/3682) Report last key error and field type indexing failures on `FT.INFO` (MOD-5364)
  - [#4236](https://github.com/RediSearch/RediSearch/pull/4236) Adding Vector index parameters at the `FT.INFO` report (MOD-6198)
  - [#4196](https://github.com/RediSearch/RediSearch/pull/4196) Check for timeout after results processing in `FT.SEARCH` on cluster setup (MOD-6278)
  - [#4164](https://github.com/RediSearch/RediSearch/pull/4164) Report `TIMEOUT`, `MAXPREFIXEXPANSION` warnings in RESP3 replies (MOD-6234)
  - [#4165](https://github.com/RediSearch/RediSearch/pull/4165) Indicate timeout on `FT.PROFILE` report (MOD-6184)
  - [#4149](https://github.com/RediSearch/RediSearch/pull/4149) Indicate timeout from Cursor on `FAIL` timeout policy (MOD-5990)
  - [#4147](https://github.com/RediSearch/RediSearch/pull/4147) Initialization of the maximum numeric value range leading to a better balance of the index leaf splitting (MOD-6232)
  - [#3940](https://github.com/RediSearch/RediSearch/pull/3940) Query optimization when predicate contains multiple `INTERSECTION` (AND) of `UNION` (OR) (MOD-5910)
  - [#4059](https://github.com/RediSearch/RediSearch/pull/4059) Return cursor id when experiencing a timeout, when the policy is `ON_TIMEOUT RETURN` (MOD-5966)
  - [#4006](https://github.com/RediSearch/RediSearch/pull/4006) Possibly problematic index name alias validation (MOD-5945)

title: v2.8.9 (October 2023)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#3874](https://github.com/RediSearch/RediSearch/pull/3874) Heavy document updates causing memory growth once memory blocks weren't properly released (MOD-5181)
  - [#3967](https://github.com/RediSearch/RediSearch/pull/3967) Resharding optimizations causing the process to get stuck (MOD-5874, MOD-5864)
  - [#3892](https://github.com/RediSearch/RediSearch/pull/3892) After cleaning the index the GC could cause corruption on unique values (MOD-5815)
  - [#3853](https://github.com/RediSearch/RediSearch/pull/3853) Queries with `WITHCURSOR` making memory growth since `CURSOR` wasn't invalidated in the shards (MOD-5580)

- Improvements:

  - [#3938](https://github.com/RediSearch/RediSearch/pull/3938) Propagating error messages in multiple shards database, instead of failing silently (MOD-5211)
  - [#3903](https://github.com/RediSearch/RediSearch/pull/3903) Added support for Rocky Linux 9 and RHEL9 (MOD-5759)

title: v2.8.8 (September 2023)

text:
This is a maintenance release for RediSearch 2.8.

Update urgency: `SECURITY`: There are security fixes in the release.

Details:

- Security and privacy:

  - [#3788](https://github.com/RediSearch/RediSearch/pull/3788) Don’t expose internal cluster commands (MOD-5706)
  - [#3844](https://github.com/RediSearch/RediSearch/pull/3844) Limits maximum phonetic length avoiding to be exploit (MOD 5767)

- Bug fixes:

  - [#3771](https://github.com/RediSearch/RediSearch/pull/3771) Broken `lower()` and `upper()` functions on `APPLY` stage in `FT.AGGREGATE` in `DIALECT 3` (MOD-5041)
  - [#3752](https://github.com/RediSearch/RediSearch/pull/3752) Setting low `MAXIDLE` parameter value in `FT.AGGREGATE` cause a crash (MOD-5608)
  - [#3780](https://github.com/RediSearch/RediSearch/pull/3780) Wrong document length calculation causing incorrect score values (MOD-5622)
  - [#3808](https://github.com/RediSearch/RediSearch/pull/3808) `LOAD` step after a `FILTER` step could cause a crash on `FT.AGGREGATE` (MOD-5267)
  - [#3823](https://github.com/RediSearch/RediSearch/pull/3823) `APPLY` or `FILTER` parser leak (MOD-5751)
  - [#3837](https://github.com/RediSearch/RediSearch/pull/3837) Connection using TLS fail on Redis 7.2 (MOD-5768)
  - [#3856](https://github.com/RediSearch/RediSearch/pull/3856) Adding new nodes to OSS cluster causing a crash (MOD-5778)
  - [#3854](https://github.com/RediSearch/RediSearch/pull/3854) Vector range query could cause Out-of-Memory due to a memory corruption (MOD-5791)

- Improvements:

  - [#3534](https://github.com/RediSearch/RediSearch/pull/3534) Vector Similarity 0.7.1 (MOD-5624)

title: v2.8 GA (v2.8.4) (July 2023)

text: This is the General Availability release of RediSearch 2.8.

title: Headlines

text: RediSearch 2.8 introduces support for RESP3, new features, performance improvements, and bug fixes.

title: What's new in 2.8.4

text:
This new major version introduces new and frequently asked for Geo Polygon Search, adding the `GEOSHAPE` field type that supports polygon shapes using [WKT notation](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry). Besides the current `GEO` (alias for `GEOPOINT`) used in geo range queries, we add support for `POLYGON` and `POINT` as new geo shape formats (new `GEOSHAPE`). In addition, 2.8 brings performance improvements for `SORT BY` operations using `FT.SEARCH` and `FT.AGGREGATE`, and new `FORMAT` for enhanced responses on `FT.SEARCH` and `FT.AGGREGATE` in RESP3 only.

Features:

- Introduce support for geo polygon shapes and queries:

  - Adding `GEOSHAPE` [field type]() to map polygons in the `SCHEMA` on `FT.CREATE` (MOD-4798)

  - Support for polygons `POLYGON` and `POINT` using [WKT notation](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry), for example `POLYGON((lon1 lat1, lon2 lat2, ...))`

  - Adjust the [query syntax]() on `FT.SEARCH` for polygons using the predicate `@geom:[OPERATOR $poly]` and defining polygon in WKT format as `PARAMS 2 poly "POLYGON((10 20, ...))"` using `DIALECT 3`

  - Initially `WITHIN` and `CONTAINS` operators with `GEOSHAPES` for now

  - Support multiple coordinate systems: cartesian (X,Y) with the flag `FLAT` for flat earth and geographic (lon, lat) using the flag `SPHERICAL` (MOD-5303). Geographic coordinate system using spherical indexing as default (`SPHERICAL`)

  - Add memory usage per Geometry Index in the `FT.INFO` response report (MOD-5278)

- Introduce performance optimization for sorting operations on `FT.SEARCH` and `FT.AGGREGATE` as default on `DIALECT 4`. It will improve performance in 4 different scenarios, listed below:

  - Skip Sorter - applied when there is no sort of any kind. The query can return once it reaches the `LIMIT` requested results.

  - Partial Range - applied when there is a `SORTBY` a numeric field, with no filter or filter by the same numeric field, the query iterates on a range large enough to satisfy the `LIMIT` requested results.

  - Hybrid - applied when there is a `SORTBY` a numeric field in addition to another non-numeric filter. Some results will get filtered, and the initial range may not be large enough. The iterator then is rewinded with the following ranges, and an additional iteration takes place to collect `LIMIT` requested results.

  - No optimization - If there is a sort by score or by non-numeric field, there is no other option but to retrieve all results and compare their values.

- Add `WITHCOUNT` argument that allow return accurate counts for the query results with sorting. This operation processes all results in order to get accurate count, being less performant than the optimized option (default behavior on `DIALECT 4`) (MOD-5311)

- New `FORMAT` argument in `FT.SEARCH` and `FT.AGGREGATE` to retrieve the results as JSON strings or RESP3 hierarchical structures (RESP3 only) (MOD-5390)

Improvements (since 2.8.3):

- [#3717](https://github.com/RediSearch/RediSearch/pull/3717) - Polygon shapes validation and orientation correction when clockwise (MOD-5575)

- [#3534](https://github.com/RediSearch/RediSearch/pull/3534) - Vector Similarity \[[0.7.0](https://github.com/RedisAI/VectorSimilarity/releases/tag/v0.7.0)\]

- [#3657](https://github.com/RediSearch/RediSearch/pull/3657) - Allow GC calls for all tiered indexes in the schema

- [#3701](https://github.com/RediSearch/RediSearch/pull/3701) - HNSW is now using data blocks to store vectors and metadata instead of array

Changed behavior:

- [#3355](https://github.com/RediSearch/RediSearch/pull/3355), [#3635](https://github.com/RediSearch/RediSearch/pull/3635) Expired keys deleted from replica's index, returning an empty array instead of `nil` (MOD-4739)

- The version inside Redis will be 2.8.4 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.

- Minimal Redis version: 7.2

- If indexing and querying RedisJSON data structures, this version is best combined with RedisJSON 2.6 (v2.6.0 onwards).

code:
HSET doc __score 1.0 name "idx1S...S" mynum 1          # Assume "S...S" is a string of 252 capital S's
    FT.CREATE "idx" SCHEMA "name" "TEXT" "mynum" "NUMERIC"
    FT.SEARCH "idx" "@name:idx1S...S"                      # Assume "S...S" is a string of 252 capital S's


title: RedisGears release notes

summary: RedisGears release notes for version 1.2 and earlier

summary: Plugins and JVM support. Python async await. Override commands API. Register functions on key miss events. Tracks new statistics. Python profiler support. Extended RedisAI integration.

title: RedisGears 1.2 release notes

summary: First GA release of RedisGears. Built-in C-API and Python interpreter. Run a serverless engine in memory next to your Redis data.

title: RedisGears 1.0 release notes

title: Content


title: RedisGears 1.0 release notes

title: Overview

text:
Here's what's changed recently in RedisGears.

To learn more, see the linked pull requests.

title: Requirements

text:
RedisGears v1.0.9 requires:

- Minimum Redis compatibility version (database): 6.0.0
- Minimum Redis Enterprise Software version (cluster): 6.0.0

title: v1.0.9 (January 2022)

text:
This is a maintenance release for RedisGears 1.0

Update urgency: `LOW` : No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

    - [#652](https://github.com/RedisGears/RedisGears/pull/652) Support for keys space notifications coming from other modules.

title: v1.0.8 (November 2021)

text:
This is a maintenance release for RedisGears 1.0.

Update urgency: `MODERATE` - Program an upgrade of the server, but it's not urgent.

Details:

- Minor features:

    - [#624](https://github.com/RedisGears/RedisGears/pull/624), [#626](https://github.com/RedisGears/RedisGears/pull/626) Update Python interpreter version to 3.7.12

- Bug fixes:

    - [#610](https://github.com/RedisGears/RedisGears/pull/610) Fix symbol collision with RediSearch and RedisGraph that causes deadlock

    - [#609](https://github.com/RedisGears/RedisGears/pull/609), [#611](https://github.com/RedisGears/RedisGears/pull/611) Crash on stream reader where stream is deleted during read

    - [#612](https://github.com/RedisGears/RedisGears/pull/612) Return error when GearsBuilder is used after `registered` or `run`

    - [#613](https://github.com/RedisGears/RedisGears/pull/613) Rare issue where stream reader might trigger executions on replica

    - [#629](https://github.com/RedisGears/RedisGears/pull/629) Rare deadlock on stream reader

title: v1.0.7 (August 2021)

text:
This is a maintenance release for version 1.0.

Update urgency: `LOW` - No need to upgrade unless there are new features you want to use.

Details:

- Minor Features:

    - [#594](https://github.com/RedisGears/RedisGears/pull/594) Added RedisGears info section to Redis info command

    - [#587](https://github.com/RedisGears/RedisGears/pull/587) `inorder` option for the command reader

    - [#592](https://github.com/RedisGears/RedisGears/pull/592), [#586](https://github.com/RedisGears/RedisGears/pull/586) Background executions will now appear on Redis slowlog, available in Redis 6.2 and above.

title: v1.0.6 (March 2021)

text:
This is a maintenance release for version 1.0.

- Update urgency: Medium

- Highlights:

    This release improves overall stability and provides fixes for issues found after the previous release.

- Bug fixes:

    - #[496](https://github.com/RedisGears/RedisGears/pull/496) Allow parallel execution on Command Reader.

    - #[505](https://github.com/RedisGears/RedisGears/pull/505) Crash on a client that sends cluster set and disconnects.

title: v1.0.5 (18 January 2021)

text:
This is a maintenance release for version 1.0.

- Update urgency: High

- Highlights:

    This release improves overall stability and provides fixes for issues found after the previous release.

- Bug fixes:

    - #[480](https://github.com/RedisGears/RedisGears/pull/480) Crash when map/accumulate/accumulateby raises an error which causes the same pyobject to be freed twice.

    - #[480](https://github.com/RedisGears/RedisGears/pull/480) 'Cluster set' happened before resending hello request, which caused a crash.

    - #[480](https://github.com/RedisGears/RedisGears/pull/480) Memory leaks on 'cluster set'.

title: v1.0.4 (17 January 2021)

text:
This is a maintenance release for version 1.0.

- Highights:

    This release improves overall stability and provides fixes for issues found after the previous release.

- Bug fixes:

    - #[458](https://github.com/RedisGears/RedisGears/pull/458) Crash on StreamReader when the stream is dropped during processing of the function.

    - #[477](https://github.com/RedisGears/RedisGears/pull/477) Rare crash on accumulate step.

title: v1.0.3 (November 2020)

text:
This is a maintenance release for version 1.0.

- Highlights:

    This release improves overall stability and provides fixes for issues found after the previous release.

- Bug fixes:

    - #[427](https://github.com/RedisGears/RedisGears/pull/427) Rare issue where messages might get lost and cause executions timeouts.

    - #[434](https://github.com/RedisGears/RedisGears/pull/434) Triggering an execution on uninitialized cluster state should raise a cluster uninitialized error.

title: v1.0.2 (October 2020)

text:
This is a maintenance release for version 1.0.

- Highlights:

    This release improves overall stability and provides fixes for issues found after the previous release.

- Details:

    - Minor Features:
        - #[368](https://github.com/RedisGears/RedisGears/pull/368) Support for buffer input on `createTensorFromBlob` when integrating with [RedisAI](https://github.com/RedisAI/RedisAI) API.

        - #[373](https://github.com/RedisGears/RedisGears/pull/373) Registered execution plans will not re-send their metadata when they are triggered (this feature reduces network overhead and improve performance of distributed registrations).

        - #[371](https://github.com/RedisGears/RedisGears/pull/371) Full details on import requirement failure.

    - Bug fixes:

        - #[374](https://github.com/RedisGears/RedisGears/pull/374) Fix RedisAI `toFlatList` function to handle long long encoding.

        - #[375](https://github.com/RedisGears/RedisGears/pull/375) Call `OnRegister` on RDBLoad.

        - #[388](https://github.com/RedisGears/RedisGears/pull/388) Fix crash on hello request failure (internal protocol between shards), a retry will be triggered after 1 second.

        - #[395](https://github.com/RedisGears/RedisGears/pull/395) Fix rare wrong results on `aggregate` and `aggregateby`. Use deep copy on the zero value to avoid those incorrect results.

title: v1.0.1 (July 2020)

text:
This is a maintenance release for version 1.0.

- Highlights:

    - *Import and Export requirements* - With this capability, you can export the python requirements present in RedisGears and import them into another instance using [gears-cli](https://github.com/RedisGears/gears-cli).

        This enables, amongst others, to import requirements to environments without internet access. Notice that the requirement should be exported from and imported into machines with the same OS and version. This is the recommended tool to use for productionising RedisGears functions (for example to be used in your CI).

    - *Optimised requirements installation mechanism* - requirements will now be distributed once to each shard and not each time an execution is triggered.

    - *RedisAI API fixes and additions* - fixes/additions related to the integration with RedisAI.

- Details:

    - Features:

        - #[330](https://github.com/RedisGears/RedisGears/pull/330) `SendMsgRetries` configuration parameter indicating how many times RedisGears should try sending messages between shards.

        - #[330](https://github.com/RedisGears/RedisGears/pull/330) `PythonInstallReqMaxIdleTime` configuration parameter for the maximum amount of time to wait for requirements to be installed.

        - #[330](https://github.com/RedisGears/RedisGears/pull/330) `RG.PYDUMPREQ` command that output all the currently available python requirements.

        - Added the following API functionality to the RedisAI integration:

            - #[346](https://github.com/RedisGears/RedisGears/pull/346) Script run will now return a list of tensors.

            - #[347](https://github.com/RedisGears/RedisGears/pull/347) Allow tensor creation from bytes.

            - #[350](https://github.com/RedisGears/RedisGears/pull/350) Added mget and mset to get/set multiple tensors from/to the keyspace.

            - #[345](https://github.com/RedisGears/RedisGears/pull/345) Free python GIL before calling redisAI model/script run.

    - Bug fixes:

        - #[325](https://github.com/RedisGears/RedisGears/pull/325) Circular reference that caused a logical memory leak.

        - #[330](https://github.com/RedisGears/RedisGears/pull/330) Crash on wrong reply status.

        - #[345](https://github.com/RedisGears/RedisGears/pull/345) Crash on python session (private data on rg.dumpregistration) 'tostr' function when there is no requirements.

        - #[334](https://github.com/RedisGears/RedisGears/pull/334) Type check to RedisAI API to prevent potential crashes.

title: v1.0.0 (May 2020)

text:
This is the first general availability (GA) release of RedisGears (v1.0.0).

- Highlights:

    - Program everything you want in Redis - With a built-in C-API and Python interpreter, RedisGears lets you use full-fledged Python scripts and libraries to process data inside Redis.

    - Write once, deploy anywhere - Write your functions against a standalone Redis database and deploy them to production clusters—with no changes required.

    - Run your serverless engine where your data lives - RedisGears lets you process events and streams faster by running in memory next to your data in Redis.

    Bug fixes (compared to RC1):

    - #[288](https://github.com/RedisGears/RedisGears/issues/288) dependencies with version will not crash the server.

    - #[309](https://github.com/RedisGears/RedisGears/issues/309), #[313](https://github.com/RedisGears/RedisGears/issues/313) Prevent crashes on RedisAI intergration and update the low level C api of RedisAI.

    - #[311](https://github.com/RedisGears/RedisGears/issues/311) Fix out-of-order reply in certain situations.

    - #[321](https://github.com/RedisGears/RedisGears/issues/321) Return error when unknown argument is given.

- The version inside Redis will be 10000 or 1.0.0 in semantic versioning.
- This version requires the Redis version to be 6.0 and above.


title: RedisGears 1.2 release notes

title: Requirements

text:
RedisGears v1.2.13 requires:

- Minimum Redis compatibility version (database): 6.0.0
- Minimum Redis Enterprise Software version (cluster): 6.0.12

title: 1.2.13 (August 2025)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW`: No need to upgrade unless there are new features or fixes.

Details

- Added support for Ubuntu 22.
- Ubuntu 16.04 and Ubuntu 18.04 are no longer supported.
- RedisGears dependencies (Python) now include redis-py 5.0.

title: 1.2.12 (December 2024)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details

- Bug fixes:
  - [#1125](https://github.com/redisgears/redisgears/pull/1125) The same registration ID might be generated twice. This may lead to an RDB corruption.
  - [#1121](https://github.com/redisgears/redisgears/pull/1121) Recreate the virtual environment on startup. Fixes an issue where the virtual environment might point to the old version of the Python interpreter.
  - [#1122](https://github.com/redisgears/redisgears/pull/1122) Clear the last error after a successful run to avoid confusion if the error is relevant.
  - [#1122](https://github.com/redisgears/redisgears/pull/1122) Clear not-yet-started executions after unregister, pause, or error on registration occcurs. (MOD-8184)

title: 1.2.10 (October 2024)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW`: No need to upgrade unless there are new features or fixes.

Details

- Bug fixes:
  - [#1114](https://github.com/redisgears/redisgears/pull/1114) (REPLICAOF and Redis Enterprise A-A only) Cross slot violation. Avoid using `RM_Call` + `SCAN` command which might replicate multiple keys deletion inside a `MULTI EXEC` block when a lazy expire takes place

- Notes:
  - RHEL7 is no longer supported

title: 1.2.9 (March 2024)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW`: No need to upgrade unless there are new features or fixes.

Details

- Features:

  - [#1087](https://github.com/RedisGears/RedisGears/pull/1087) Support for RHEL9
  - [#986](https://github.com/RedisGears/RedisGears/pull/986) Added execution mode parameter to `run` function: allows choosing the execution mode: `sync`/`async`/`async_local` - same as when used with register

- Bug fixes:

  - [#1097](https://github.com/RedisGears/RedisGears/pull/1097) Fix stream reader missing notification due to wrong key name comparison (comparing using case sensitive)

title: 1.2.7 (July 2023)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW`: No need to upgrade unless there are new features or fixes.

Details

- Features:

  - [#972](https://github.com/RedisGears/RedisGears/pull/972) Upgrade JVM to 17.0.7

title: 1.2.6 (March 2023)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW` : No need to upgrade unless there are new features or fixes.

Details

- Features:

  - [#832](https://github.com/RedisGears/RedisGears/pull/832), [#844](https://github.com/RedisGears/RedisGears/pull/844) Added IPV6 support
  - [#841](https://github.com/RedisGears/RedisGears/pull/841) Generate artifacts with dependencies included

- Bug fixes:

  - [#810](https://github.com/RedisGears/RedisGears/pull/810) Fix invalid memory access when checking if a trigger is already registered

title: v1.2.5 (July 2022)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `MODERATE` : Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

    - [#792](https://github.com/RedisGears/RedisGears/issues/792), [#798](https://github.com/RedisGears/RedisGears/pull/798) Execution was triggered infinitely when trimming is turned off.
    - [#791](https://github.com/RedisGears/RedisGears/issues/791), [#796](https://github.com/RedisGears/RedisGears/pull/796) Stop triggering executions during pause even on failure.
    - [#794](https://github.com/RedisGears/RedisGears/pull/794), [#797](https://github.com/RedisGears/RedisGears/pull/797) Use `PythonInstallationDir` configuration to find the virtual environment location on Redis Enterprise. (MOD-1734)

title: v1.2.4 (May 2022)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW` : No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

    - [#772](https://github.com/RedisGears/RedisGears/pull/772) Added the ability to upgrade a dependency at runtime with `FORCE_REQUIREMENTS_REINSTALLATION` on `RG.PYEXECUTE`.
    - [#765](https://github.com/RedisGears/RedisGears/pull/765) Allow deactivating override Python allocators for performance improvements.

- Bug fixes:

    - [#761](https://github.com/RedisGears/RedisGears/issues/761), [#760](https://github.com/RedisGears/RedisGears/issues/760), [#778](https://github.com/RedisGears/RedisGears/pull/778) `StreamReader` fixes to pause and unregister stream processing.

title: v1.2.3 (April 2022)

text:
This is a maintenance release for RedisGears 1.2.

Update urgency: `LOW` : No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

    - [#739](https://github.com/RedisGears/RedisGears/pull/739) Added TLS support
    - [#734](https://github.com/RedisGears/RedisGears/pull/734) Pause/Unpause registrations
    - [#741](https://github.com/RedisGears/RedisGears/pull/741) Added build for Python-only artifacts

- Bug fixes:

    - [#740](https://github.com/RedisGears/RedisGears/pull/740) Fix -nan value on registration stats

title: v1.2.2 (February 2022)

text: This is the General Availability release of RedisGears 1.2.

title: Headlines

text:
#### Plugins and JVM support

RedisGears 1.2 comes with a new plugin mechanism that allows you to decide which languages you want to load into RedisGears. Currently, we support two languages: Python and Java (JVM languages). You can decide which language you want to use using the new `Plugin` configuration.

Full documentation for JVM support can be found on the [Redis documentation website]().

#### Python async await support

RedisGears provides support for Python coroutines. Each step of your gears function can now be a Python coroutine that will take the execution to the background or will wait for some event to happen. Refer to the following links for more information:

- Async Await Support
- Async Await Advanced Topics

#### Override commands API

You can override Redis vanilla commands with a function. For more information, refer to the RedisGears command hooks documentation.

#### Key miss event for read-through pattern

Requested by many users, RedisGears 1.2 allows you to register functions on key miss event. One use case for this is to implement a read-through caching pattern. For more information about this topic, refer to the following links:

- Key Miss Event in the RedisGears documentation.
- [rghibernate](https://github.com/RedisGears/rghibernate) recipe that leverages the key miss event to implement read-through from external databases.

#### Better visibility and analyzing tools

We improved the experience during the development phase by enabling better debugging and troubleshooting. There is still room for improvement but RedisGears 1.2 makes the first steps toward a simpler API that is easier to use. This new version allows you to name your code and upgrade it with a single Redis command. For more information, refer to the upgrade section of the RedisGears introduction documentation.

RedisGears now tracks the following new statistics to better analyze your registrations:

- `lastRunDurationMS` - duration in milliseconds of the last execution
- `totalRunDurationMS` - total runtime of all executions in milliseconds
- `avgRunDurationMS` - average execution runtime in milliseconds

For streams, RedisGears also tracks the following data:

- `lastEstimatedLagMS` - gives the last batch lag (the time difference between the first batch entry in the stream and the time the entire batch finished processing)
- `avgEstimatedLagMS` - average of the `lastEstimatedLagMS` field.

The `RG.DUMPREGISTRATIONS` command exposes these new statistics.

RedisGears 1.2 also adds support for a Python profiler, specifically [`cProfile`](https://docs.python.org/3.7/library/profile.html#module-cProfile). For more information, refer to the documentation for the following commands:

- `RG.PYPROFILE STATS`
- `RG.PYPROFILE RESET`

#### RedisAI integration

Although RedisAI integration was already supported in v1.0, RedisGears 1.2 adds official support for all capabilities in RedisAI v1.2. The API was extended to support RedisAI DAG and was combined with the new async await API to achieve the best performance possible.

title: Details

text:
Bug fixes (since 1.0.9):

- [#557](https://github.com/RedisGears/RedisGears/pull/557), [#554](https://github.com/RedisGears/RedisGears/issues/554) `RG.CONFIGGET` returns user-defined configuration
- [#572](https://github.com/RedisGears/RedisGears/pull/572) Lock Redis GIL when creating RedisAI DAG
- [#661](https://github.com/RedisGears/RedisGears/pull/661), [#536](https://github.com/RedisGears/RedisGears/issues/536) Added `RG.TRIGGERONKEY`
- [#650](https://github.com/RedisGears/RedisGears/issues/650) Do not propagate `MULTI EXEC` on Redis 7
- [#671](https://github.com/RedisGears/RedisGears/pull/671), [#558](https://github.com/RedisGears/RedisGears/issues/558) Wait for cluster to be initialized when reading stream data
- [#656](https://github.com/RedisGears/RedisGears/pull/656) Stream reader creates more than one execution on a stream
- [#676](https://github.com/RedisGears/RedisGears/pull/676) Globals dictionary not set correctly after deserialization
- [#665](https://github.com/RedisGears/RedisGears/issues/665), [#679](https://github.com/RedisGears/RedisGears/pull/679) Allow case-insensitive event type on command reader
- [#697](https://github.com/RedisGears/RedisGears/pull/697) `hashtag()` function for Redis Enterprise
- [#688](https://github.com/RedisGears/RedisGears/pull/688), [#545](https://github.com/RedisGears/RedisGears/issues/545) Check `REDISMODULE_CTX_FLAGS_DENY_BLOCKING` flag before blocking the client

- This is the first GA version of 1.2. The version inside Redis is 1.2.2 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.

- Minimum Redis version: 6.0.0


title: RedisGraph release notes

summary: RedisGraph release notes for version 2.10 and earlier

summary: Introduces new path algorithms, additional expressivity (constructs and functions), performance improvements, and bug fixes.

title: RedisGraph 2.10 release notes

summary: Introduces multi-labeled nodes, indexes over relationship properties, and additional expressivity (Cypher construct, functions, and operators). Major performance enhancements. Many bug fixes.

title: RedisGraph 2.8 release notes

summary: Added Map and Geospatial Point data types.

title: RedisGraph 2.4 release notes

summary: Support for scaling reads, OPTIONAL MATCH, query caching, and GRAPH.SLOWLOG.

title: RedisGraph 2.2 release notes

summary: Enabled graph-aided search and graph visualisation. Cypher coverage. Performance improvements.

title: RedisGraph 2.0 release notes

summary: Support multiple relationships of the same type R connecting two nodes. Lexer elides escape characters in string creation. Performance improvements.

title: RedisGraph 1.2 release notes

summary: Fixed memory leaks. Support ‘*’ within RETURN clause. Added TYPE function. Initial support for UNWIND clause.

title: RedisGraph 1.0 release notes

title: Content

text:
Redis, Inc. has announced the end of life for RedisGraph. We will carry out the process gradually and in accordance with our commitment to our customers. See [details](https://redis.com/blog/redisgraph-eol/).

{{}}


title: RedisGraph 1.0 release notes

title: Requirements

text:
RedisGraph v1.0.15 requires:

- Minimum Redis compatibility version (database): 4.0.0
- Minimum Redis Enterprise Software version (cluster): 5.0.0

title: v1.0.15 (March 2019)

text:
- GraphBLAS 2.3.0 [release notes](https://github.com/RedisLabsModules/RedisGraph/pull/390#issuecomment-470620353)
- WITH clause: Allows query parts to be chained together, piping the results from one to be used as starting points or criteria of the next. [ref p.78](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf)
- Enhancements
    - #[393](https://github.com/RedisGraph/RedisGraph/issues/393) Discard distinct when performing aggregation
- Minor bugfixes
    - #[359](https://github.com/RedisGraph/RedisGraph/issues/359) Adding ORDER BY changes the number of returned hits when used in combination with LIMIT
    - #[363](https://github.com/RedisGraph/RedisGraph/issues/363) Remove graph entity property when it is set to null
    - #[386](https://github.com/RedisGraph/RedisGraph/issues/386) Return updated values on queries that modify data

title: v1.0.14 (21 February 2019)

text: License update, REDIS SOURCE AVAILABLE LICENSE AGREEMENT.

title: v1.0.13 (6 February 2019)

text: Reuse attribute name to avoid duplication

title: v1.0.12 (28 January 2019)

text: Traverse direction optimization to reduce number of matrix transpose

title: v1.0.11 (17 January 2019)

text:
- Removed OpenMP requirement
- Traverse from multiple nodes concurrently

title: v1.0.10 (9 January 2019)

text: Update indices when MERGE creates new entities

title: v1.0.9 (6 January 2019)

text:
- Support for mixing MERGE and SET clauses
- Granular writer locking
- Fix graph serialization error in duplicate edge handling

title: v1.0.8 (24 December 2018)

text:
- Index utilization when performing cartesian product
- Increase usage of rm_malloc functions in module
- Allow serialization of NULL-valued properties
- Support for multiple relationship types

title: v1.0.7 (18 December 2018)

text:
- Bulk-insert support unicode
- Bulk-insert better progress reporting
- Multiple relationship types

title: v1.0.5 (15 December 2018)

text: Bulk insert supports ID specifying + relationships attributes

title: v1.0.4 (9 December 2018)

text: - Compact GraphBLAS, using structural semiring

title: v1.0.3 (2 December 2018)

text:
- GraphBLAS 2.2
- Multiple CREATE clauses
- Multiple MATCH clauses
- Bug fixes:
    - Replace operations appropriately when rewriting execution plan
    - Entity returned from datablock should have its internals cleared
    - Loaded triemap strings are not guaranteed space for a null terminator

title: v1.0.2 (25 November 2018)

text: - Bug fix #[249](https://github.com/RedisGraph/RedisGraph/issues/249) reset operation within execution plan should propagate upwards

title: v1.0.1 (22 November 2018)

text:
- Resolved a number of memory leaks
- Support '*' within RETURN clause
- Add TYPE function
- Initial support for UNWIND clause


title: RedisGraph 1.2 release notes

title: Requirements

text:
RedisGraph v1.2.2 requires:

- Minimum Redis compatibility version (database): 4.0.0
- Minimum Redis Enterprise Software version (cluster): 5.0.0

title: v1.2.2 (May 2019)

text:
Update urgency: Medium
This is a maintenance release for version 1.2.

This release improves overall stability and provides fixes for issues found after the previous release.

title: v1.2.0 (April 2019)

text:
This is a major release for RedisGraph.
Compared to previous release 1.0.15:

- Added functionality
    - #[452](https://github.com/RedisGraph/RedisGraph/issues/452) Support multiple relationships of the same type R connecting two nodes
    - #[392](https://github.com/RedisGraph/RedisGraph/issues/392) Lexer elides escape characters in string creation: support for property values with `'` or `"`
- Performance improvements
    - #[442](https://github.com/RedisGraph/RedisGraph/issues/442) Seek graph entity by id: `MATCH (n) WHERE ID(n) = 5 RETURN n`
    - #[422](https://github.com/RedisGraph/RedisGraph/issues/422) `MATCH (n) RETURN COUNT(n)` is now O(1)
    - #[421](https://github.com/RedisGraph/RedisGraph/issues/421) and #[459](https://github.com/RedisGraph/RedisGraph/issues/459) Lazy loading of matrices on subsequent writes of relationships and nodes
    - #[399](https://github.com/RedisGraph/RedisGraph/issues/399) Single transpose of matrices
- Minor Bugfixes:
    - #[456](https://github.com/RedisGraph/RedisGraph/issues/456) Memory leaks
    - #[439](https://github.com/RedisGraph/RedisGraph/issues/439) When label doesn't exists, the node count should return 0 #[439](https://github.com/RedisGraph/RedisGraph/issues/439)
    - #[435](https://github.com/RedisGraph/RedisGraph/issues/435) Referencing non existing properties #[435](https://github.com/RedisGraph/RedisGraph/issues/435)

Compared to 1.0:

- Added functionality
    - #[390](https://github.com/RedisGraph/RedisGraph/issues/390) GraphBLAS 2.3.0 [release notes](https://github.com/RedisLabsModules/RedisGraph/pull/390#issuecomment-470620353)
    - #[452](https://github.com/RedisGraph/RedisGraph/issues/452) Support multiple relationships of the same type R connecting two nodes
    - #[392](https://github.com/RedisGraph/RedisGraph/issues/392) Lexer elides escape characters in string creation: support for property values with ' or "
    - Enhanced cypher
        - Initial support for WITH clause: Allows query parts to be chained together, piping the results from one to be used as starting points or criteria of the next. [ref p.78](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf)
        - #[247](https://github.com/RedisGraph/RedisGraph/issues/247) Initial support for UNWIND
        - #[244](https://github.com/RedisGraph/RedisGraph/issues/244) RETURN * (give me everything bro)
        - #[236](https://github.com/RedisGraph/RedisGraph/issues/236) TYPE function (returns the type of a relationship)
        - #[288](https://github.com/RedisGraph/RedisGraph/issues/288) Querying patterns where a relationship between two nodes can be of different types. ()-[:A|:B]->()
        - #[252](https://github.com/RedisGraph/RedisGraph/issues/252) Multiple MATCH clauses
        - #[327](https://github.com/RedisGraph/RedisGraph/issues/327) Multiple CREATE clauses
        - #[305](https://github.com/RedisGraph/RedisGraph/issues/305) MERGE + SET
        - #[348](https://github.com/RedisGraph/RedisGraph/issues/348) Smaller memory footprint - encode properties
    - [Faster and better bulk loading](https://github.com/RedisGraph/redisgraph-bulk-loader)
- Performance improvements
    - #[442](https://github.com/RedisGraph/RedisGraph/issues/442) Seek graph entity by id: MATCH (n) WHERE ID(n) = 5 RETURN n
    - #[422](https://github.com/RedisGraph/RedisGraph/issues/422) MATCH (n) RETURN COUNT(n) is now O(1)
    - #[421](https://github.com/RedisGraph/RedisGraph/issues/421) and #[459](https://github.com/RedisGraph/RedisGraph/issues/459) Lazy loading of matrices on subsequent writes of relationships and nodes
    - #[399](https://github.com/RedisGraph/RedisGraph/issues/399) Single transpose of matrices
    - #[393](https://github.com/RedisGraph/RedisGraph/issues/393) Discard distinct when performing aggregation
    - #[289](https://github.com/RedisGraph/RedisGraph/issues/289) Index utilization when performing Cartesian product
    - #[308](https://github.com/RedisGraph/RedisGraph/issues/308) Granular writer locking
- Most noticeable bugfixes
    - #[456](https://github.com/RedisGraph/RedisGraph/issues/456) Memory leaks
    - #[439](https://github.com/RedisGraph/RedisGraph/issues/439) When label doesn't exists, the node count should return 0
    - #[435](https://github.com/RedisGraph/RedisGraph/issues/435) Referencing non existing properties
    - #[359](https://github.com/RedisGraph/RedisGraph/issues/359) Adding ORDER BY changes the number of returned hits when used in combination with LIMIT
    - #[363](https://github.com/RedisGraph/RedisGraph/issues/363) Remove graph entity property when it is set to null
    - #[386](https://github.com/RedisGraph/RedisGraph/issues/386) Return updated values on queries that modify data
    - #[249](https://github.com/RedisGraph/RedisGraph/issues/249) reset operation within execution plan should propagate upwards
    - #[259](https://github.com/RedisGraph/RedisGraph/issues/259) Replace operations appropriately when rewriting execution plan
    - #[262](https://github.com/RedisGraph/RedisGraph/issues/262) Entity returned from datablock should have its internals cleared
    - #[264](https://github.com/RedisGraph/RedisGraph/issues/264) Loaded triemap strings are not guaranteed space for a null terminator