Releases: Smile-SA/elasticsuite
2.11.16.1
Release changes
💎 Vanilla JS alternative for the Instant Search React based component
This releases introduces the ability to switch from the React based JS component to a vanilla JS component for the Instant Search if you have problems or conflicts with the React building phase pre/post-delivery, through two new settings
- Stores > Configuration > Elasticsuite > Instant Search > Use Native JS Autocomplete (Fallback Mode) (defaults to "No")
- Stores > Configuration > Elasticsuite > Instant Search > Disable React bundle loading (Fallback Mode) (defaults to "Yes" but only visible if the previous setting is set to "Yes")
To benefit from these changes, make sure that you also upgrade the composer package smile/magento2-react to its latest version (16.12.5).
Fixing access to Stores > Configuration > Elasticsuite > Analyzers Settings
This releases addresses an issue with the inability for a non "full admin" Magento admin user to view and change the settings under Stores > Configuration > Elasticsuite > Analyzers Settings.
Now, if the user already has the role resource Stores > Settings > Configuration > Elasticsuite Base Settings, he will be able to access this settings section.
(2.4.7 and 2.4.8) Attribute filter-ability in search vs search-ability
Starting sometime in Magento 2.4.7, it was no longer possible when editing an attribute in admin to set "Use in Search Results Layered Navigation" to "Yes" if "Use in Search" was set to "No" (changing that property through our custom "Elasticsuite Product Attributes" import/export was still possible though).
It is now fixed.
📦 Features
- 💎 [InstantSearch] Vanilla JS component by @PierreGauthier
- 💎 [InstantSearch] Allow disabling the React Bundle loading altogether by @rbayet
🐛 Fixes
- [Core] Replacing undeclared advanced analysis settings ACL by @rbayet in #3745
- [Catalog] Fixes #3743 Make is_filterable_in_search independent by @rbayet in #3746
💻 Technical
Full Changelog: 2.11.16...2.11.16.1
2.10.31.1
Release changes
💎 Vanilla JS alternative for the Instant Search React based component
This releases introduces the ability to switch from the React based JS component to a vanilla JS component for the Instant Search if you have problems or conflicts with the React building phase pre/post-delivery, through two new settings
- Stores > Configuration > Elasticsuite > Instant Search > Use Native JS Autocomplete (Fallback Mode) (defaults to "No")
- Stores > Configuration > Elasticsuite > Instant Search > Disable React bundle loading (Fallback Mode) (defaults to "Yes" but only visible if the previous setting is set to "Yes")
To benefit from these changes, make sure that you also upgrade the composer package smile/magento2-react to its latest version (16.12.5).
Fixing access to Stores > Configuration > Elasticsuite > Analyzers Settings
This releases addresses an issue with the inability for a non "full admin" Magento admin user to view and change the settings under Stores > Configuration > Elasticsuite > Analyzers Settings.
Now, if the user already has the role resource Stores > Settings > Configuration > Elasticsuite Base Settings, he will be able to access this settings section.
📦 Features
- 💎 [InstantSearch] Vanilla JS component by @PierreGauthier
- 💎 [InstantSearch] Allow disabling the React Bundle loading altogether by @rbayet
🐛 Fixes
Full Changelog: 2.10.31...2.10.31.1
2.11.16
🏆 Main features
💎 Language support: Introducing dictionary based stemming
For handling in search the singular and plural form of nouns or conjugated versus infinitive form of verbs, Elasticsuite relies on the Elasticsearch/OpenSearch algorithmic stemming feature that support a wide variety of languages, but not all of them.
For languages not supported, we've introducing in this release in Elasticsuite Premium the ability to use Elasticsearch's / OpenSearch's dictionary based stemming feature that relies on Hunspell dictionaries used by a wide variety of spellcheckers.
This can be configured at the Store scope in Stores > Configuration > Elasticsuite > Analyzers Settings > Dictionary based stemming.
💎 Search: Detect and transform unit symbols in quantity/size expressions to preserve the meaning
By default, when indexing content and searching, most of special (non alphanumerical) characters are removed at the beginning of the text analysis and those remaining are then used to delimit/break words and finally removed.
This can be problematic if your catalog data relies heavily on units of measure and/or if your users use their symbol when searching (like " for inches or ' for feet): out of the box, there is no difference in search between 3" screws and 3' screws.
This release introduces in Elasticsuite Premium a mechanism that allows you to define "unit detection rules" rules that will replace a unit of measure symbol or shorthand notation by its full name both at indexing and search time, preserving the sense of the original expression.
For instance, if you associate the character/sequences of character ", in and in. to inches, the expressions 3" and 3in and 3in. will all be transformed to 3 inches at indexing and search time.
The new settings located in Stores > Configuration > Elasticsuite > Analyzers Settings > Unit detection configuration offer a wide coverage of use cases (location of the symbol before or after the quantity, whether the unit name replacing the symbol should be put before or after the quantity, etc).
Autocomplete & 💎 InstantSearch : Ability to force taking categories/products manual/edited URL rewrites into account
By default, for the categories autocomplete, Elasticsuite will rely on the fact that redirect (301) URLs will always be generated when the url_key of a category changes.
Unfortunately, if you manually edit the URL rewrite of a category in admin (Marketing > SEO & Search > URL Rewrites), or if you use a third party module that generates them according to specific rules without putting in place redirect (301) URLs, you could end up with a category being shown in the autocomplete results with a link leading to a 404 page.
The same applies on Elasticsuite Premium for products in addition to categories.
We've decided to introduce settings in Stores > Configuration > Elasticsuite > Catalog Search > Explicit URL rewrites support that can force Elasticsuite to look into the URL rewrites table at indexing :
- Enabled for categories : which is set to Yes by default, since the overhead of looking for categories URL rewrites should be negligible to minimal
- 💎 Enabled for products : (available on Elasticsuite Premium) which is set to No by default since the overhead can be noticeable depending on your catalog size and the number of stores you have.
Please be aware that at this time, there is no automated mechanism that flags a category or a product for being re-indexed in the search engine when an URL rewrite that targets it is changed.
Thesaurus: ability to apply the synonyms rules without regard to singular/plural forms of words
A known limitation about the thesaurus feature is that synonyms and expansions rules are triggered only when the word searched by a user is present exactly as is in the rules.
For instance
- searching for "stories" would not trigger a "story,tale" synonym rule
- searching for "sports" would not trigger a "sport => football,tennis,soccer,running" expansion rule
The common way to deal with that is to include the extra singular/plural form of words in the rule, for instance
- changing the synonym rule from "story,tale" to "story,stories,tale,tales"
- changing the expansion rule from "sport => football,tennis,soccer,running" to "sport,sports => football,tennis,soccer,running"
This can be avoided starting from this release by switching to Yes the new setting in Stores > Configuration > Elasticsuite > Thesaurus (global settings) > Enable stemming on synonym and expansion rules.
It is not enabled by default because we already know of some limitations
- ignoring the singular/plural aspect of words will not work for multi-word synonym rules (e.g. "red dragon,blue vampire")
- in some languages, it can happen that "double stemming" occurs, losing some precision in alternative queries
- in french "chaises" ("chair") will be stemmed into "chais" at the thesaurus time and possibly "chai" (stem for "cellar") at search time
But do not hesitate to try the feature and give us some much welcomed feedback.
📦 Features
- 💎 [Analysis] Detect quantity/size with units by @rbayet
- 💎 [Analysis] Preserve some special chars by @PierreGauthier
- 💎 [AdvancedAnalysis] Introduce Dictionary based stemming by @rbayet
- 💎 [AB Campaign] Add the number of uses and number of results of search term in the campaign optimizer form by @rbayet
- [Catalog] Accessibility adjustments by @saltomorales in #3688
- [Catalog] [Autocomplete] Take categories manual/edited URL rewrites into account by @rbayet in #3731
- [Core] Support custom scoring model/similarity at the attribute/field level by @rbayet in #3712
- 💎 [Explain] Document thesaurus stemming use by @rbayet
- 💎 [Explain] Add clarification about the weight in matches. Mentions the scoring model/algorithm. by @rbayet
- [Indices] Analysis: adding token type info by @rbayet in #3735
- 💎 [InstantSearch] Take categories manual/edited URL rewrites into account by @rbayet
- 💎 [InstantSearch] Take products manual/edited URL rewrites into account by @rbayet
- 💎 [Recommender][Healthcheck] Critical healthcheck for the similarity attribute(s) by @rbayet
- [Thesaurus] Allow using stemmed words to match rules by @rbayet in #3708
🧰 Technical
- [Analysis] Handle uppercase elision by @PierreGauthier in #3729
- 💎 [CascadeSearch] Analysis: add implicit word delimiter parameter by @rbayet
- [Catalog][Autocomplete] Pull category URL suffix from store scope by @rbayet in #3728
- 💎 [Core] Metapackages: clean alphabetical list of modules by @rbayet
- [Core] Prevent firebear/importexport messing up analysis config by @rbayet in #3696
- [Core] Analysis: add implicit word delimiter parameter by @rbayet in #3737
- [Core] Analysis: introducing constant and token filters for special characters handling by @rbayet in #3738
- [Core] Stemmer selection in admin, minor CSS tweak by @rbayet in #3702
- [Core] Fix for upcoming PHP 8.5 deprecation, casting to double is no longer allowed by @hostep in #3732
- 💎 [Hyva][Recommender] Recommender blocks (loader) to the correct location by @rbayet
- 💎 [HyvaCompatibility] CSP: register inline script tags by @rbayet
- [Indices] Escape analysis tokens by @rbayet in #3734
- 💎 [InstantSearch] Pull Category URL suffix from store scope config by @rbayet
- 💎 [InstantSearch] Pull Product URL suffix from store scope config by @rbayet
- [Optimizers/Catalog] UI component: reposition search terms' Uses/Popularity' by @rbayet in #3691
- [Optimizers] Conditions engine useable when Virtual Categories module disabled by @rbayet in #3721
- [Thesaurus] Max number of rewritten queries to 50 by @rbayet in #3711
- [Thesaurus] #3713 Force leniency when creating index by @rbayet in #3716
- [Thesaurus] Disabling by default stemming in thesaurus rules. by @rbayet in #3733
🐛 Fixes
- [CatalogGraphQl] Fixes #3643 functionally (ES searchContext update) properly by @rbayet in #3686
- [Catalog][GraphQL] Fix #3574, add customer group condition for price filtering by @vahonc in #3714
- [GraphQl] Fix Numeric Attributes filter type by @PierreGauthier in #3720
- [Core] Fix #3623, add supporting getMinPrice() and getMaxPrice() as Magento Core functionality...
2.10.31
🏆 Main features
💎 Language support: Introducing dictionary based stemming
For handling in search the singular and plural form of nouns or conjugated versus infinitive form of verbs, Elasticsuite relies on the Elasticsearch/OpenSearch algorithmic stemming feature that support a wide variety of languages, but not all of them.
For languages not supported, we've introducing in this release in Elasticsuite Premium the ability to use Elasticsearch's / OpenSearch's dictionary based stemming feature that relies on Hunspell dictionaries used by a wide variety of spellcheckers.
This can be configured at the Store scope in Stores > Configuration > Elasticsuite > Analyzers Settings > Dictionary based stemming.
💎 Search: Detect and transform unit symbols in quantity/size expressions to preserve the meaning
By default, when indexing content and searching, most of special (non alphanumerical) characters are removed at the beginning of the text analysis and those remaining are then used to delimit/break words and finally removed.
This can be problematic if your catalog data relies heavily on units of measure and/or if your users use their symbol when searching (like " for inches or ' for feet): out of the box, there is no difference in search between 3" screws and 3' screws.
This release introduces in Elasticsuite Premium a mechanism that allows you to define "unit detection rules" rules that will replace a unit of measure symbol or shorthand notation by its full name both at indexing and search time, preserving the sense of the original expression.
For instance, if you associate the character/sequences of character ", in and in. to inches, the expressions 3" and 3in and 3in. will all be transformed to 3 inches at indexing and search time.
The new settings located in Stores > Configuration > Elasticsuite > Analyzers Settings > Unit detection configuration offer a wide coverage of use cases (location of the symbol before or after the quantity, whether the unit name replacing the symbol should be put before or after the quantity, etc).
Autocomplete & 💎 InstantSearch : Ability to force taking categories/products manual/edited URL rewrites into account
By default, for the categories autocomplete, Elasticsuite will rely on the fact that redirect (301) URLs will always be generated when the url_key of a category changes.
Unfortunately, if you manually edit the URL rewrite of a category in admin (Marketing > SEO & Search > URL Rewrites), or if you use a third party module that generates them according to specific rules without putting in place redirect (301) URLs, you could end up with a category being shown in the autocomplete results with a link leading to a 404 page.
The same applies on Elasticsuite Premium for products in addition to categories.
We've decided to introduce settings in Stores > Configuration > Elasticsuite > Catalog Search > Explicit URL rewrites support that can force Elasticsuite to look into the URL rewrites table at indexing :
- Enabled for categories : which is set to Yes by default, since the overhead of looking for categories URL rewrites should be negligible to minimal
- 💎 Enabled for products : (available on Elasticsuite Premium) which is set to No by default since the overhead can be noticeable depending on your catalog size and the number of stores you have.
Please be aware that at this time, there is no automated mechanism that flags a category or a product for being re-indexed in the search engine when an URL rewrite that targets it is changed.
Thesaurus: ability to apply the synonyms rules without regard to singular/plural forms of words
A known limitation about the thesaurus feature is that synonyms and expansions rules are triggered only when the word searched by a user is present exactly as is in the rules.
For instance
- searching for "stories" would not trigger a "story,tale" synonym rule
- searching for "sports" would not trigger a "sport => football,tennis,soccer,running" expansion rule
The common way to deal with that is to include the extra singular/plural form of words in the rule, for instance
- changing the synonym rule from "story,tale" to "story,stories,tale,tales"
- changing the expansion rule from "sport => football,tennis,soccer,running" to "sport,sports => football,tennis,soccer,running"
This can be avoided starting from this release by switching to Yes the new setting in Stores > Configuration > Elasticsuite > Thesaurus (global settings) > Enable stemming on synonym and expansion rules.
It is not enabled by default because we already know of some limitations
- ignoring the singular/plural aspect of words will not work for multi-word synonym rules (e.g. "red dragon,blue vampire")
- in some languages, it can happen that "double stemming" occurs, losing some precision in alternative queries
- in french "chaises" ("chair") will be stemmed into "chais" at the thesaurus time and possibly "chai" (stem for "cellar") at search time
But do not hesitate to try the feature and give us some much welcomed feedback.
📦 Features
- 💎 [Analysis] Detect quantity/size with units by @rbayet
- 💎 [Analysis] Preserve some special chars by @PierreGauthier
- 💎 [AdvancedAnalysis] Introduce Dictionary based stemming by @rbayet
- 💎 [AB Campaign] Add the number of uses and number of results of search term in the campaign optimizer form by @rbayet
- [Catalog] Accessibility adjustments (2.10.x) by @rbayet in #3689
- [Catalog][Autocomplete] Take categories manual/edited URL rewrites into account by @rbayet in #3731
- [Core] Support custom scoring model/similarity at the attribute/field level by @rbayet in #3712
- 💎 [Explain] Document thesaurus stemming use by @rbayet
- 💎 [Explain] Add clarification about the weight in matches. Mentions the scoring model/algorithm. by @rbayet
- [Indices] Analysis: adding token type info by @rbayet in #3735
- 💎 [InstantSearch] Take categories manual/edited URL rewrites into account by @rbayet
- 💎 [InstantSearch] Take products manual/edited URL rewrites into account by @rbayet
- 💎 [Recommender][Healthcheck] Critical healthcheck for the similarity attribute(s) by @rbayet
- [Thesaurus] Allow using stemmed words to match rules by @rbayet in #3708
🧰 Technical
- [Analysis] Handle uppercase elision by @PierreGauthier in #3729
- 💎 [CascadeSearch] Analysis: add implicit word delimiter parameter by @rbayet
- [Catalog][Autocomplete] Pull category URL suffix from store scope by @rbayet in #3728
- 💎 [Core] Metapackages: clean alphabetical list of modules by @rbayet
- [Core] Prevent firebear/importexport messing up analysis config by @rbayet in #3696
- [Core] Analysis: add implicit word delimiter parameter by @rbayet in #3737
- [Core] Analysis: introducing constant and token filters for special characters handling by @rbayet in #3738
- [Core] Stemmer selection in admin, minor CSS tweak by @rbayet in #3702
- 💎 [Hyva][Recommender] Recommender blocks (loader) to the correct location by @rbayet
- 💎 [HyvaCompatibility] CSP: register inline script tags by @rbayet
- [Indices] Escape analysis tokens by @rbayet in #3734
- 💎 [InstantSearch] Pull Category URL suffix from store scope config by @rbayet
- 💎 [InstantSearch] Pull Product URL suffix from store scope config by @rbayet
- [Optimizers/Catalog] UI component: reposition search terms' Uses/Popularity by @rbayet in #3691
- [Optimizers] Conditions engine useable when Virtual Categories module disabled by @rbayet in #3721
- [Thesaurus] Max number of rewritten queries to 50 by @rbayet in #3711
- [Thesaurus] #3713 Force leniency when creating index by @rbayet in #3716
- [Thesaurus] Disabling by default stemming in thesaurus rules. by @rbayet in #3733
🐛 Fixes
- [Catalog][GraphQL] Fix #3574, add customer group condition for price filtering by @vahonc in #3714
- [GraphQl] Fix Numeric Attributes filter type by @PierreGauthier in #3720
- [Core] Fix #3623, add supporting getMinPrice() and getMaxPrice() as Magento Core functionality by @PierreGauthier in #3692
- [Layer] Fix category in search context by @PierreGauthier in #3693
- [Optimizers] Fixes search terms num. results not initially shown after selection by @rbayet in https://github.c...
2.11.15.1
2.10.30.1
2.11.15
🏆 Main features
💎 Virtual categories dashboard
We're introducing a new Elasticsuite Premium composer package named smile/module-elasticsuite-category-monitoring.
It provides a new module Smile_ElasticsuiteCategoryMonitoring whose feature is a new menu entry under "Elasticsuite Categories > Virtual Categories Dashboard".
As its name suggests, it provides a screen listing all your virtual categories with some relevant information, alerts if need be and a direct link to go edit the virtual category.

Along with the decoration of virtual categories with the Elasticsuite logo
in the Catalog > Categories category tree menu also introduced in this release, it is intended to help you quickly locate and evaluate your virtual categories.
Optimizers: Ability to apply them to all but some categories
Historically, for an optimizer applicable to the Catalog Navigation, it was possible to let it be applied
- either to all categories
- or only to some categories
It is now possible to have a boost be applied to all categories except some.

Indexing / Bulk error grid
A new menu entry is available in Elasticsuite > System > Indexing / Bulk Errors.
It leads to a grid that will show you errors that may have occurred at indexing time when sending data in bulk and which can led to documents (products, categories, etc) being rejected and not indexed.
While those errors were already reported to the Magento logs, they will now additionally be visible in the admin so you can more quickly
- identify the rejected documents (categories, products)
- address any issue with a faulty custom data source or a Magento attribute or its data having been incorrectly initialized.
The logging of those errors can be disabled through the setting located at Stores > Configuration > Elasticsuite > Base Settings > Indexing / Bulk errors logging > Enable logging of bulk indexing errors.
Please note that for Magento entity based indices (categories, products) all existing logged errors are purged from the database when a full re-index occurs.
📦 Features
- [Admin] Bulk errors grid by @PierreGauthier in #3654
- [Core] Add ability to read the index name of a document by @rbayet in #3647
- 💎 [Healthchecks] Added healthcheck for Premium client Id by @romainruaud in Elastic-Suite/magento2-elasticsuite-premium#350
- [Healthcheck] Add tracking events healthcheck by @PierreGauthier in #3664
- [Optimizer] Feature #2766 Add ability to apply optimizer to all categories except some by @rbayet in #3656
- 💎 Feature #2766 [elasticsuitepremium] Optimizer apply to categories except some by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#354
- [Optimizers] Show search terms' Uses/Popularity and Number of results by @rbayet in #3678
- 💎 [Recommender] Add option to use only company events by @PierreGauthier in Elastic-Suite/magento2-elasticsuite-premium#355
- [Tracker] Handle base64 encoded numeric identifiers by @rbayet in #3632
- 💎 [Tracker] Data checker for product uid vs id by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#352
- 💎 [Virtual category] Create Dashboard by @PierreGauthier in Elastic-Suite/magento2-elasticsuite-premium#359
- [VirtualCategories][Admin] Show the ES logo near a category name in trees by @rbayet in #3668
💻 Technical
- [Backport] Replacing Zend_Date with native PHP DateTime object/funct… by @PierreGauthier in #3665
- [Core] Refactor the Upsell message by @romainruaud in #3636
- [Core] Anticipate doc type removal in later ES/OS versions by @rbayet in #3674
- [Core] Re-ordering Elasticsuite menus by @rbayet in #3679
- [Core] Quality fixes by @rbayet in #3677
- 💎 [Core][PHP] Fixes #3602 correct casting of null coalesce operator results by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#353
- 💎 [Core] Re-ordering Elasticsuite menus by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#362
- [Healthcheck] Adding i18n to 'anchor' categories check by @rbayet in #3648
- [Healthcheck] Minor i18n issue and cosmetics by @rbayet in #3670
- [Indices] Feature #3652 remove individual index stats calls by @rbayet in #3653
- [Optimizer] Reorder methods post-merge of #2766 by @rbayet in #3673
- 💎 [Recommender][Hyva] Remove native recommender blocks by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#303
- 💎 [Recommender] Alter label for company-based restricted recommendations by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#363
- [SignificantTerm] Add background filter by @PierreGauthier in #3662
- [Tracker][Company] Move company related logic into a helper to make it reusable by @PierreGauthier in #3667
- [Tracker] Refactor behavioral data checkers by @rbayet in #3633
- [Tracker] Support partial behavioral data fixing by @rbayet in #3637
- 💎 [Tracker] Support partial behavioral data fixing by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#351
- [Tracker] Report partial behavioral data fixing by @rbayet in #3638
- [Tracker] Optional progress/reporting oriented interfaces for fixers by @rbayet in #3641
- [Tracker] Optional progress/reporting interfaces more generic by @rbayet in #3649
- [Tracker] Relaxed progress/reporting interfaces prototypes by @rbayet in #3650
- [Tracker] Update referenceContainer for CMS tracker by @rikwillems in #3661
🐛 Fixes
- 💎 [AB Campaign] Discard empty session_id when collecting ab campaign results by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#360
- [Core][PHP] Fixes #3602 correct casting of null coalesce operator results by @rbayet in #3657
- 💎 [Explain] Re-organize call stack for listening to container change and query text by @romainruaud in Elastic-Suite/magento2-elasticsuite-premium#349
- [GraphQl] Fix #3643, inject ArgumentsProcessorInterface into Elasticsuite, replicate Magento Core logic by @vahonc in #3669
- [Healthchecks] Fixed hyva spelling by @dylanmaurits in #3635
- [Tracker] Fixing broken transparent pixel (content) by @rbayet in #3642
- [Analytics][Tracker] Fix lack of company_id and customer_group_id in sessions by @rbayet in #3651
New Contributors
- @dylanmaurits made their first contribution in #3635
- @rikwillems made their first contribution in #3661
Full Changelog (Open Source): 2.11.14...2.11.15
2.10.30
🏆 Main features
💎 Virtual categories dashboard
We're introducing a new Elasticsuite Premium composer package named smile/module-elasticsuite-category-monitoring.
It provides a new module Smile_ElasticsuiteCategoryMonitoring whose feature is a new menu entry under "Elasticsuite Categories > Virtual Categories Dashboard".
As its name suggests, it provides a screen listing all your virtual categories with some relevant information, alerts if need be and a direct link to go edit the virtual category.

Along with the decoration of virtual categories with the Elasticsuite logo
in the Catalog > Categories category tree menu also introduced in this release, it is intended to help you quickly locate and evaluate your virtual categories.
Optimizers: Ability them to all but some categories
Historically, for an optimizer applicable to the Catalog Navigation, it was possible to let it be applied
- either to all categories
- or only to some categories
It is now possible to have a boost be applied to all categories except some.

Indexing / Bulk error grid
A new menu entry is available in Elasticsuite > System > Indexing / Bulk Errors.
It leads to a grid that will show you errors that may have occurred at indexing time when sending data in bulk and which can led to documents (products, categories, etc) being rejected and not indexed.
While those errors were already reported to the Magento logs, they will now additionally be visible in the admin so you can more quickly
- identify the rejected documents (categories, products)
- address any issue with a faulty custom data source or a Magento attribute or its data having been incorrectly initialized.
The logging of those errors can be disabled through the setting located at Stores > Configuration > Elasticsuite > Base Settings > Indexing / Bulk errors logging > Enable logging of bulk indexing errors.
Please note that for Magento entity based indices (categories, products) all existing logged errors are purged from the database when a full re-index occurs.
📦 Features
- [Admin] Bulk errors grid by @PierreGauthier in #3654
- [Core] Add ability to read the index name of a document by @rbayet in #3647
- 💎 [Healthchecks] Added healthcheck for Premium client Id by @romainruaud in Elastic-Suite/magento2-elasticsuite-premium#350
- [Healthcheck] Add tracking events healthcheck by @PierreGauthier in #3664
- [Optimizers] Feature #2766 Add ability to apply optimizer to all categories except some by @rbayet in #3656
- 💎 Feature #2766 [elasticsuitepremium] Optimizer apply to categories except some by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#354
- [Optimizers] Show search terms' Uses/Popularity and Number of results by @rbayet in #3678
- 💎 [Recommender] Add option to use only company events by @PierreGauthier in Elastic-Suite/magento2-elasticsuite-premium#355
- [Tracker] Handle base64 encoded numeric identifiers by @rbayet in #3632
- 💎 [Tracker] Data checker for product uid vs id by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#352
- 💎 [Virtual category] Create Dashboard by @PierreGauthier in Elastic-Suite/magento2-elasticsuite-premium#359
- [VirtualCategories][Admin] Show the ES logo near a category name in trees by @rbayet in #3668
💻 Technical
- [Backport] Replacing Zend_Date with native PHP DateTime object/funct… by @PierreGauthier in #3665
- [Core] Refactor the Upsell message by @romainruaud in #3636
- [Core] Anticipate doc type removal in later ES/OS versions by @rbayet in #3674
- [Core] Re-ordering Elasticsuite menus by @rbayet in #3679
- 💎 [Core][PHP] Fixes #3602 correct casting of null coalesce operator results by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#353
- 💎 [Core] Re-ordering Elasticsuite menus by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#362
- [Healthcheck] Adding i18n to 'anchor' categories check by @rbayet in #3648
- [Healthcheck] Minor i18n issue and cosmetics by @rbayet in #3670
- [Indices] Feature #3652 remove individual index stats calls by @rbayet in #3653
- 💎 [Recommender][Hyva] Remove native recommender blocks by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#303
- 💎 [Recommender] Alter label for company-based restricted recommendations by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#363
- [SignificantTerm] Add background filter by @PierreGauthier in #3662
- [Tracker][Company] Move company related logic into a helper to make it reusable by @PierreGauthier in #3667
- [Tracker] Refactor behavioral data checkers by @rbayet in #3633
- [Tracker] Support partial behavioral data fixing by @rbayet in #3637
- 💎 [Tracker] Support partial behavioral data fixing by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#351
- [Tracker] Report partial behavioral data fixing by @rbayet in #3638
- [Tracker] Optional progress/reporting oriented interfaces for fixers by @rbayet in #3641
- [Tracker] Optional progress/reporting interfaces more generic by @rbayet in #3649
- [Tracker] Relaxed progress/reporting interfaces prototypes by @rbayet in #3650
- [Tracker] Update referenceContainer for CMS tracker (2.10.x) by @rbayet in #3671
🐛 Fixes
- 💎 [AB Campaign] Discard empty session_id when collecting ab campaign results by @rbayet in Elastic-Suite/magento2-elasticsuite-premium#360
- [Core][PHP] Fixes #3602 correct casting of null coalesce operator results by @rbayet in #3657
- 💎 [Explain] Re-organize call stack for listening to container change and query text by @romainruaud in Elastic-Suite/magento2-elasticsuite-premium#349
- [Healthchecks] Fixed hyva spelling by @rbayet in #3640
- [Tracker] Fixing broken transparent pixel (content) by @rbayet in #3642
- [Analytics][Tracker] Fix lack of company_id and customer_group_id in sessions by @rbayet in #3651
Full Changelog (Open-Source): 2.10.29...2.10.30
2.11.14
🏆 Main features
Search Usage dashboard: Ability to copy the list of search terms to the clipboard
In the Analytics > Search Usage dashboard, it is now possible to copy the popular and spellcheck search terms tabular data into your clipboard.

The data can then be pasted into a spreadsheet application: it is in CSV format with the Tab character as separator (so actually, TSV / "Tab Separated Values" instead of CSV / "Comma Separated Values").
Indices grid: Mass remove button in admin and CLI command to remove all ghost indices
It was already possible to remove ghost indices from the Elasticsuite > Indices screen, but one by one, which can be cumbersome if you have a lot of them.
Since we do not offer a cronjob to automatically remove ghost indices, we always recommended the third party module sehrling/elasticsuite-ghost-cleaner that does (and we'll keep doing it !).
But you now have a dedicated button to remove at once all the ghost indices from the Elasticsuite > Indices screen :

We've also added a Magento CLI command to that effect: php bin/magento elasticsuite:indices:purgeghosts.
📦 Features
- [Analytics] #3584 Add ability to copy list of search terms to the clipboard by @vahonc in #3597
- [Analytics][B2B] #3614 Add sorting Company filter options alphabetically by @vahonc in #3620
- [Healthcheck] #3583 Introduce category.is_anchor config check by @vahonc in #3594
- [Indices] #3600 Add a button to remove all ghosts indexes by @vahonc in #3612
- [Indices] #3624 Add a CLI command to remove all ghost indices by @rbayet in #3629
💻 Technical
- [Core] Allow newer versions of opensearch-php client but keep discarding tho… by @romainruaud in #3625
- [Core] Replacing deprecated word_delimiter by word_delimiter_graph by @rbayet in #3605
- [Indices] #3592 #3596 Better performance when getting indices stats by @rbayet in #3610
- [Indices] Shard settings: removing cache usage altogether by @rbayet in #3613
🐛 Fixes
- [Analytics] Fix analytics missing 0 results search terms by @rbayet in #3621
- [Catalog] #3617 Elasticsuite is not indexing url_key in Magento 2.4.8 by @pawel-ledwig in #3617 #3619
- 💎 [Explain] #326 Boost impact/scale function not displayed by @rbayet
New Contributors
- @pawel-ledwig made their first contribution in #3619
Full Changelog: 2.11.13...2.11.14
2.10.29
🏆 Main features
Search Usage dashboard: Ability to copy the list of search terms to the clipboard
In the Analytics > Search Usage dashboard, it is now possible to copy the popular and spellcheck search terms tabular data into your clipboard.

The data can then be pasted into a spreadsheet application: it is in CSV format with the Tab character as separator (so actually, TSV / "Tab Separated Values" instead of CSV / "Comma Separated Values").
Indices grid: Mass remove button in admin and CLI command to remove all ghost indices
It was already possible to remove ghost indices from the Elasticsuite > Indices screen, but one by one, which can be cumbersome if you have a lot of them.
Since we do not offer a cronjob to automatically remove ghost indices, we always recommended the third party module sehrling/elasticsuite-ghost-cleaner that does (and we'll keep doing it !).
But you now have a dedicated button to remove at once all the ghost indices from the Elasticsuite > Indices screen :

We've also added a Magento CLI command to that effect: php bin/magento elasticsuite:indices:purgeghosts.
📦 Features
- [Analytics] #3584 Add ability to copy list of search terms to the clipboard by @vahonc in #3597
- [Analytics][B2B] #3614 Add sorting Company filter options alphabetically by @vahonc in #3620
- [Healthcheck] #3583 Introduce category.is_anchor config check by @vahonc in #3594
- [Indices] #3600 Add a button to remove all ghosts indexes by @vahonc in #3612
- [Indices] #3624 Add a CLI command to remove all ghost indices by @rbayet in #3629
💻 Technical
- [Core] Replacing deprecated word_delimiter by word_delimiter_graph by @rbayet in #3605
- [Indices] #3592 #3596 Better performance when getting indices stats by @rbayet in #3610
- [Indices] Shard settings: removing cache usage altogether by @rbayet in #3613
🐛 Fixes
- [Analytics] Fix analytics missing 0 results search terms by @rbayet in #3621
- 💎 [Explain] #326 Boost impact/scale function not displayed by @rbayet
Full Changelog: 2.10.28...2.10.29