Changes since last release
- PHP 8.5 — Added PHP 8.5 to the CI build matrix.
- Added
loadFields method to Index to load fields from Redis.
- Added
bin/redisearch CLI tool for managing indexes.
- Upgraded redis-raw to 3.0.2 to fix a bug where FT.INFO would respond with garbage.
Changes since last release
- PHP 8.3 support — fixed “Typed property must not be accessed before initialization” fatal errors.
- PHP 8.4+ compatibility — fixed implicitly nullable parameters and dynamic property deprecations.
- Replaced Robo with
justfile — just test, just fmt, etc. are now the standard commands.
- GitHub Actions CI — lint-and-format job plus PHPUnit test matrix across PHP 8.2, 8.3, and 8.4.
- Removed deprecated
version field from docker-compose.yml.
- Added
CLAUDE.md with contributor guidance and project structure documentation.
- Added
/contribute and /unit-test Claude Code skills for contributors.
- Upgraded
/unit-test skill to target PHPUnit 11 and enforce AAA (Arrange-Act-Assert) test style.
Changes since last release
- Index prefix support — fixed index creation to correctly apply prefix options.
- Improved hash support — better
addHash functionality for adding documents as Redis hashes.
Changes since last release
- PHP 8.0+ is now required.
FT.ADDHASH removed — replaced with HSET to align with RediSearch v2 API.
replaceMany() — bulk replace documents alongside the existing addMany().
FT.TAGVALS support — retrieve all values in a tag field.
- Tag field auto-detection — array values passed to
FieldFactory::make are automatically treated as Tag fields.
- Aggregation improvements — operations now support optional field lists; group-by filter feature added.
Index::getFields() made public.
- Suggestion scores — support for retrieving scores with autocomplete suggestions.
- Fixed suggestion score incrementation.
- Escaped special characters in tag field filters.
- Fixed handling of “document already exists” and “unsupported language” return values from Redis.
DocumentAlreadyInIndexException now includes the index name and document ID in the message.
Changes since last release
- Loosen version requirement for redis raw to pull in bug fix(es).
Changes since last release
- Fix issue with implicitly named indexes.
Changes since last release
Changes since last release
Changes since last release
- Support complete RediSearch API, now including RETURN, SUMMARIZE, HIGHLIGHT, EXPANDER, and PAYLOAD in search queries.
Changes since last release
Changes since last release
- Polished docs, and added a section on the Laravel RediSearch package.
- Made internal changes to how numeric and geo search queries are generated.
Changes since last release
- Remove RedisClient class and add adapter functionality.
- There are now adapters for Predis, PhpRedis, and the Cheprasov client. They all extend AbstractRedisClient which implements RedisClientInterface. An additional adapter can be created by extending AbstractRedisClient or by implementing RedisClientInterface if needed for some reason.
- Handle RediSearch module error when index is created on a Redis database other than 0.
- Return boolean true instead of “OK” when using PredisAdapter.
- A new index now requires that a redis client is passed into its constructor - removed the magic behavior where a default RedisClient instance was auto initialized.
Changes since last release
- An exception is now thrown when the RediSearch module is not loaded in Redis.
- Allow a language to be specified when searching.
Changes since last release
Changes since last release
- Many bug fixes and code quality improvements.
Changes since last release
- Rename vendor namespace from Eeh to Ehann
- AbstractIndex was renamed to Index and is no longer abstract.
- Custom document ID is now properly set when adding to an index.