Skip to content

Releases: RediSearch/RediSearch

v2.8.8

27 Sep 16:24
b3154fb
Compare
Choose a tag to compare

This is a maintenance release for RediSearch 2.8

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

Details

Security and privacy:

  • #3788 Don’t expose internal cluster commands (MOD-5706)
  • #3844 Limits maximum phonetic length avoiding to be exploit (MOD 5767)

Bug fixes:

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

Improvements:

2.8 GA (v 2.8.4)

28 Jul 11:22
7797d39
Compare
Choose a tag to compare

This is the General Availability release of RediSearch 2.8

Headlines:

RedisSearch 2.8 introduces support for RESP3, new features, performance improvements, and bug fixes.

What's new in 2.8.4

This new major version introduces new and frequently asked Geo Polygon Search. Adding the GEOSHAPE field type that supports polygons shapes using WKT notation. Besides the current GEO(alias for GEOPOINT) used already geo range queries, we add the support for POLYGON and POINT as new geo shapes formats (new GEOSHAPE). In addition, 2.8 brings improvements on performance 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, 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 iterate 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 optimised option (default behaviour 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 - Polygons shapes validation and orientation correction when clockwise (MOD-5575)
  • #3534 - Vector Similarity [0.7.0]
  • #3657 - Allow GC calls for all tiered indexes in the schema
  • #3701 - HNSW is now using data blocks to store vectors and metadata instead of array

Changed Behavior:

  • #3355, #3635 Expired keys deleted from slave's index, returning an empty array instead of nil (MOD-4739)

Notes:

  • 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)

v2.6.12

12 Jul 11:56
11b44a2
Compare
Choose a tag to compare

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 TIMEOUT configuration on FT.AGGREGATE query being ignored (MOD-5208)
  • #3552 FT.CURSOR READ on JSON numeric queries not returning results (MOD-4830)
  • #3606 Update numeric inverted index numEntries avoiding excessive memory consumption (MOD-5181)
  • #3597 Duplicating alias as output name on FT.AGGREGATE reducer (REDUCE argument) doesn't return results(MOD-5268)
  • #3654 Added check for @ prefix on GROUPBY fields returning an error instead of wrong results

Improvements:

  • #3628 Background indexing scanning performance (MOD-5259)
  • #3259 Allow alias name beginning with as
  • #3641 Triggers on Indexing sanitising (Garbage Collection routine) when in heavy data updates scenario (MOD-5180)

2.8-RC2 (v.2.8.3)

21 Jun 14:32
2f92d05
Compare
Choose a tag to compare
2.8-RC2 (v.2.8.3) Pre-release
Pre-release

This is the second Release Candidate of RediSearch 2.8.

Highlights

This new major version introduces new and frequently asked Geo Polygon Search. Adding the GEOSHAPE field type that support polygons shapes using WKT notation. Beside the current GEO(alias for GEOPOINT) used already geo range queries, we add the support for POLYGON as new shapes. In addition, 2.8 brings improvements on performance for SORT BY operations using FT.SEARCH and FT.AGGREGATE

Details

Features:

  • #3553 Introduce support for Geo-polygon shapes and queries:

    • #3476, #3660 Adding GEOSHAPE field type to map polygons in the SCHEMA on FT.CREATE (MOD-4798)
    • Support for polygons POLYGON using WKT notation, for example, POLYGON((x1 y1, x2 y2, ...))
    • #3556 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
    • #3645 Support multiple coordinate systems cartesian (X,Y) and geographic (lon, lat) (MOD-5303). The geographic coordinate system using spherical indexing as default (SPHERICAL)
  • #3046 Improved Sorting: 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 numeric field, with no filter or filter by the same numeric field, the query iterate on a range large enough to satisfy the LIMIT requested results.
    • Hybrid - applied when there is a SORTBY 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.
    • #3651 Add a WITHCOUNT argument that allows the return of accurate counts for the query results with sorting. This operation processes all results in order to get an accurate count, being less performant than the optimised option (default behaviour on DIALECT 4) (MOD-5311)

Improvements (since 2.8.2):

  • #3641 Indexing sanitizing trigger in heavy data updates scenario
  • #3614 Several improvements in the aggregation's execution pipeline (MOD-5086)

Changed Behavior:

  • #3355, #3635 Expired keys deleted from slave's index, returning an empty array instead of nil (MOD-4739)

Bug fixes (since 2.8.2):

  • #3597 Duplicating alias as output name on FT.AGGREGATE reducer (REDUCE argument) doesn't return results(MOD-5268)
  • #3654 Added check for @ prefix on GROUPBY fields returning an error instead of wrong results
  • #3501 Sorting by 2 or more fields follows the sort order not ignoring sort values if preceding sort values are missed
  • #3582 Sorter will set a lower rank in documents expired during query time, preventing clients to freeze

Notes:

  • The version inside Redis will be 2.8.3 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a Release Candidate 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)

2.8-RC1 (v.2.8.2)

12 Jun 09:27
0583ffe
Compare
Choose a tag to compare
2.8-RC1 (v.2.8.2) Pre-release
Pre-release

This is the first Release Candidate of RediSearch 2.8.

Highlights

This new major version introduces new and frequently asked Geo Polygon Search. Adding the GEOMETRY field type that support polygons shapes using WKT notation. In addition, 2.8 brings improvements on performance for SORT BY operations using FT.SEARCH and FT.AGGREGATE

Details

Features:

  • #3553 Introduce support for Geo-polygon shapes and queries

    • #3476 Adding GEOMETRY field type to map polygons in the SCHEMA on FT.CREATE
    • Adding polygons using WKT notation, for example POLYGON((x1 y1, x2 y2, ...))
    • #3556 #Addnew 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 Geometries only
  • #3046 Introduce OPTIMIZE keyword to SORTBY queries using FT.SEARCH and FT.AGGREGATE that improve performance in 4 different scenarios:

    • 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 iterate 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.

Improvements (since 2.8.1):

  • #3628 Background indexing scanning performance (MOD-5259)

Changed Behavior:

  • #3355 Expired keys deleted from slave's index, returning an empty array instead of nil (MOD-4739)

Bug fixes (since 2.8.1):

  • #3562 Index definition may load several times when using REPLICAOF causing a failure (MOD-5215)
  • #3557 TIMEOUT configuration on FT.AGGREGATE query being ignored (MOD-5208)
  • #3606 Update numeric inverted index numEntries avoiding excessive memory consumption (MOD-5181)
  • #3552 FT.CURSOR READ on JSON numeric queries not returning results (MOD-4830)

Notes:

  • The version inside Redis will be 2.8.2 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a Milestone 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)

2.8-M01 (v2.8.1)

15 May 07:57
251cc55
Compare
Choose a tag to compare
2.8-M01 (v2.8.1) Pre-release
Pre-release

This is the first Milestone of RediSearch 2.8

Details

Features:

  • #3553 Introduce support for Geo-polygon shapes and queries

    • #3476 Adding GEOMETRY field type to map polygons in the SCHEMA on FT.CREATE
    • Adding polygons using WKT notation, for example POLYGON((x1 y1, x2 y2, ...))
    • #3556 Adjust the query syntax on FT.SEARCH for polygons following '@geom:[OPERATOR POLYGON((x1 y1, x2 y2, ...))]' using DIALECT 3
    • Initially WITHIN and CONTAINS operators with Geometries only
    • Add information about the Geometry Index at FT.INFO
  • #3046 Introduce OPTIMIZE keyword to SORTBY queries using FT.SEARCH and FT.AGGREGATE that improve performance in 4 different scenarios:

    • 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 iterate 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.

Improvements (since 2.6.9):

  • #3259 Allow alias name beginning with as

Changed Behavior:

  • #3355 Expired keys deleted from slave's index, returning an empty array instead of nil (MOD-4739)

Known Issues:

  • Creating 2x DBs with at least 2x Shards using REPLICAOF cause a failure (MOD-5215)

Bug fixes (since 2.6.9):

  • #3216 Inconsistent behavior with ON_TIMEOUT FAIL config (MOD-4265)

Notes:

  • The version inside Redis will be 2.8.1 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a Milestone flag.
  • Minimal Redis version: 6.2
  • If indexing and querying RedisJSON data structures, this version is best combined with RedisJSON 2.6 (v2.6.0 onwards)

v2.6.9

24 Apr 16:26
b205a1d
Compare
Choose a tag to compare

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 KNN searching for 0 vectors with a filter resulted in crash (MOD-5006)
  • #3499 MAXSEARCHRESULTS set to 0 causing FT.SEARCH crash (MOD-5062)
  • #3494 Removing MAXSEARCHRESULTS limit causes crash on FT.AGGREGATE (MOD-4974)
  • #3504 Uninitialised vector similarity query parameter bug (MOD-5063)

Improvements:

  • #3430 Improve min-max heap structure for better readability and performance
  • #3450 Display NOHL option in FT.INFO command
  • #3534 Vector Similarity 0.6.1: Improve multi-value index deletion logic (#346)

v2.6.6

02 Mar 08:42
d0efac2
Compare
Choose a tag to compare

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 Fix suffix and prefix matching when using CASESENSITIVE flag (MOD-4872)

Improvements:

  • #3397 Improve the Vecsim initial capacity default value

v2.6.5

05 Feb 07:00
71bd22f
Compare
Choose a tag to compare

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 Library update preventing a crash during cluster failover (MOD-4560)
  • #3357 Handling division by zero in expressions preventing nodes to restart (MOD-4296)
  • #3332 Fix wildcards * queries on DIALECT 2 and DIALECT 3

Improvements:

  • #3361 Enable the use of IPv6 for all cluster and module communication

v2.6.4

29 Dec 20:12
9fcb442
Compare
Choose a tag to compare

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 Potential crash when querying multiple fields (MOD-4639)
  • #3279 Potential crash when querying using wildcard * on TAG field (MOD-4653)

Improvements:

  • #3256 Support IPv6 on cluster set command
  • #3194 Add the query dialects that are in use to FT.INFO and INFO MODULE commands (MOD-4232)
  • #3258 Add the module version and Redis version to INFO MODULE