Releases: PHP-CMSIG/search
Release 0.9.3 (2025-06-17)
SEAL 0.9.3
What's Changed
- Add support for distinct attributes 🎉 by @Toflar in #551
- Add distinct() documentation by @Toflar in #558
- Add distinct flag to schema documentation by @alexander-schranz in #559
Full Changelog: 0.9.2...0.9.3
Thx to @Toflar the creator of Loupe it is now possible to distinct by a specified field in SEAL.
Checkout the documentation for the new distinct
feature.
You are using Loupe and or want to support his Open Source work? Consider sponsoring @Toflar via Github here.
Upgrading from an older version?
If you upgrade from an older version – check backwards compatibility breaks of previous releases:
Attend Discussions 📢
Release 0.9.2 (2025-06-16)
SEAL 0.9.2
What's Changed
- Add missing phpdocs for group conditions by @Toflar in #555
- Switch redis query dialect from deprecated 3 to 2 by @alexander-schranz in #554
Full Changelog: 0.9.1...0.9.2
Upgrading from an older version?
If you upgrade from an older version – check backwards compatibility breaks of previous releases:
Attend Discussions 📢
Release 0.9.1 (2025-05-22)
SEAL 0.9.1
What's Changed
- Upgrade to Loupe v0.12 🎉 by @Toflar in #552
- Fix reindex documentation in getting started by @Toflar in #547
- Fix updating of the documentation by @alexander-schranz in #553
Full Changelog: 0.9.0...0.9.1
Upgrading from an older version?
If you upgrade from an older version – check backwards compatibility breaks of previous releases:
Attend Discussions 📢
Release 0.9.0 (2025-05-22)
SEAL 0.9.0
What's Changed
- Improve error message about field names in indexes by @gisostallenberg in #534
- Improve error message about missing highlighted field in hit by @gisostallenberg in #538
- Add possibility that an Index can have options by @alexander-schranz in #541
- Add support for Loupe 0.11 with new offset and limit possibilities 🎉 by @ker0x in #545
- Refactor FlattenMarshaller to not duplicate original document (Performance Improvement 🎉 ) (BC Break
⚠️ ) by @alexander-schranz in #546
New Contributors
- @gisostallenberg made their first contribution in #534 Thx 🙏
Full Changelog: 0.8.1...0.9.0
BC Breaks
Solr and Loupe require reindex with drop
The Solr and Loupe adapter required to flatten complex objects. For still supporting nested objects in previous versions we did duplicate the original document into a own raw field. With the implemented new flattener algorithm we not require this duplication and just some metadata to recreate the data into its complex structure. For this change a drop
+ reindex
is required for all which are using Loupe
or Solr
adapter. Run the:
# Symfony
bin/console cmsig:seal:reindex --drop
# Laravel
php artisan cmsig:seal:reindex --drop
# Spiral
php app.php cmsig:seal:reindex --drop
# Mezzio
vendor/bin/laminas cmsig:seal:reindex --drop
# Yii
./yii cmsig:seal:reindex --drop
or use the $engine->reindex($reindexProviders, ReindexConfig::create()->withDropIndex(true));
method to drop and reindex all existing indexes for this UPGRADE.
Upgrading from an older version?
If you upgrade from an older version check backwards compatibility breaks of previous releases:
Attend Discussions 📢
Release 0.8.1 (2025-05-08)
SEAL 0.8.1
What's Changed
- Add support for Redis 8 🎉 by @alexander-schranz in #531
- Add support for Opensearch 3 🎉 by @alexander-schranz in #530
The Version of Redis 7 and Opensearch 2 are still supported. Like in the previous release with Elasticsearch 9 and Typesense 28 supported older version Elasticsearch 8 and Typesense 27 is also still supported at time of this release.
Full Changelog: 0.8.0...0.8.1
Upgrading from an older version?
If you upgrade from a older version <0.8
check backwards compatibility breaks of the releases:
Attend Discussions 📢
Release 0.8.0 (2025-05-06)
SEAL 0.8.0
What's Changed
- Fix and normalize handling of none matching highlight fields (BC Break) by @alexander-schranz Thx to @fertandil87 in #525
- Fix sort by text fields for elasticsearch, opensearch, typesense and solr by @alexander-schranz Thx to @fertandil87 in #527
- Fix loupe integration example configurations by @alexander-schranz Thx to @chapterjason in #528
- Add support for Typesense 28 and Typesense PHP SDK 5 🎉 by @alexander-schranz in #529
- Adjust docs for loupe/matcher by @Toflar in #526
Full Changelog: 0.7.3...0.8.0
BC Breaks
Highlighted fields result may changed
Some engines in the past did automatically fallback in the highlighted fields to the original value even if there was no match and nothing to highlight. To normalize this behaviour this mechanic is now in control of you. If you did use Loupe, Meilisearch and Algolia and want the previous behaviour back add fallback yourself:
$title = $document['_formatted']['title']
+ ?? $document['title']
?? '';
Attend Discussions 📢
Release 0.7.3 (2025-04-29)
SEAL 0.7.3
What's Changed
- Add support for elasticsearch 9 by @alexander-schranz 🎉 in #520
- Add mezcalito/ux-search to list about alternatives by @alexander-schranz in #508
- Add community section to research docs by @alexander-schranz in #515
- Add article about 'How Discord Indexes Trillions of Messages' to docs by @alexander-schranz in #516
- Fix link in readme by @alexander-schranz in #518
- Upgrade elasticsearch docker images to 8.18.0 by @alexander-schranz in #517
- Update yii dependencies to latest versions by @alexander-schranz in #519
- Update current composer dependencies by @alexander-schranz in #521
Full Changelog: 0.7.2...0.7.3
Attend Discussions 📢
Release 0.7.2 (2024-04-01)
SEAL 0.7.2
What's Changed
- Add loupe context cropper library reference to documentation 🎉 by @alexander-schranz in #506
- Fix getFieldByPath for Object and Typed Fields by @ntoniazzi in #507
New Contributors
- @ntoniazzi made their first contribution in #507
Full Changelog: 0.7.1...0.7.2
Attend Discussions 📢
Release 0.7.1 (2025-03-19)
SEAL 0.7.1
What's Changed
Full Changelog: 0.7.0...0.7.1
- Add interesting articles about search technoligies by @alexander-schranz in #499
- Remove Yii gii package for easier maintainance by @alexander-schranz in #500
- Add support for Loupe 0.10 🎉 by @alexander-schranz Thx @Toflar in #501
Attend Discussions 📢
Release 0.7.0 (2025-02-28)
SEAL 0.7.0
What's Changed
Full Changelog: 0.6.1...0.7.0
- Add highlight methods to search and search builder 🎉 @Toflar @alexander-schranz in #349
- Add helper to ease creating an empty result 🎉 @Toflar in #497
- Add support for Laravel 12 🎉 @alexander-schranz in #494
- Update research docs with removed search SaaS @alexander-schranz in #480
- Add missing documentation about bulk operations @alexander-schranz in #484
- Fix mezzio linting task and php requirement and fix Yii example run @alexander-schranz in #485
- Add missing Loupe example to Integration READMEs @alexander-schranz in #486
- Change documentation version to 0.7 @alexander-schranz in #493
- Fix old namespace usages in documentation @alexander-schranz in #495
With this new release you can use the highlight
method to get additional _formatted
data with the matched string:
$result = $this->engine->createSearchBuilder('blog')
->addFilter(new Condition\SearchCondition('Search Term'))
->highlight(
fields: ['title', 'description'],
preTag: '<mark>',
postTag: '</mark>',
)
This is supported by all Adapter with the exception of Redisearch see: #491