Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch

Overview

PHP Code Quality Integration Packagist star this repo fork this repo GitHub contributors PRs Welcome Open Source Love

Smile

News

⚠️ Magento versions compatibility :

Due to several changes in Magento 2.4.0, we cannot ensure compatibility between ElasticSuite <2.10 and Magento >=2.4.0 versions.

Moreover, a breaking change was introduced between 2.4.0 and 2.4.1 :

  • if your project is based on Magento >= 2.4.1, you can start working with ElasticSuite today using the latest 2.10.x release
  • if your project is based on Magento = 2.4.0, the latest Elasticsuite release you can use is the 2.10.1

Which version should I use ?

Magento Version ElasticSuite Latest Version Supported Elasticsearch Version Actively maintained
Magento 2.0.x Opensource (CE) / Commerce (EE) ElasticSuite 2.1.x : composer require smile/elasticsuite ~2.1.0 2.x No
Magento 2.1.x Opensource (CE) / Commerce (EE) ElasticSuite 2.3.x : composer require smile/elasticsuite ~2.3.0 2.x & 5.x No
Magento 2.2.x Opensource (CE) / Commerce (EE) ElasticSuite 2.6.x : composer require smile/elasticsuite ~2.6.0 5.x & 6.x No
Magento <2.3.2 Opensource (CE) / Commerce (EE) ElasticSuite 2.8.4 : composer require smile/elasticsuite 2.8.4 5.x & 6.x No
Magento <2.3.5 Opensource (CE) / Commerce (EE) ElasticSuite 2.8.x : composer require smile/elasticsuite ~2.8.0 5.x & 6.x No
Magento >=2.3.5 Opensource (CE) / Commerce (EE) ElasticSuite 2.9.x : composer require smile/elasticsuite ~2.9.0 6.x & 7.x Yes
Magento 2.4.0 Opensource (CE) / Commerce (EE) ElasticSuite 2.10.1 : composer require smile/elasticsuite 2.10.1 6.x & 7.x No
Magento >=2.4.1 Opensource (CE) / Commerce (EE) ElasticSuite 2.10.x : composer require smile/elasticsuite ~2.10.0 6.x & 7.x Yes

Magento2 B2B Compatibility

If your are using Magento Commerce (formerly known as Enterprise Edition) B2B feature with Elasticsuite, you will need to install :

  • Elasticsuite Shared Catalog module which is located here

  • Elasticsuite Quick Order module which is located here

Introducing Elasticsuite modules

We are glad to announce officially that we now have a complete list of additional modules to Elasticsuite, which are all available for free and are published Open Source on Github :

Module Name Description
CMS Search Allow to search for CMS pages (in autocomplete and search results).
Ratings Allow to filter and/or sort on ratings (based on standard Magento rating module).
Elasticsuite for Retailers A complete suite of retail oriented modules : Store Locator, Price segmentation per store, etc...
TargetRules with Elasticsearch This module allow to compute target rules via Elasticsearch instead of full MySQL (require Magento Commerce (EE)).

Community Add-ons

We have now some of our fellow users that are distributing add-ons for ElasticSuite. We would like to thanks them for supporting and using ElasticSuite.

Here is a list of currently published add-ons :

Add-on Name Description
ComWrap ElasticsuiteBlog A bridge to use ElasticSuite with MageFan Blog.
It allows to index Blog posts into the search engine and display them into the autocomplete results, and also on the search result page.

What is ElasticSuite for Magento 2 ?

ElasticSuite is a merchandising suite for Magento which aims to provide out the box a lot of features usually only available with proprietary merchandising tools.

The project was originally created by Smile and released to the Open Source community for Magento 1.x. You can still find the Magento 1.x module here.

Who is developing ElasticSuite ?

Smile

Smile

ElasticSuite is built by the Innovation board of Smile.

Smile is the European leader of Open Source and also a four-times Europe Partner of the the Year (2010-2014), two-times Spirit of Excellence (2015-2016), Global Elite Partner (2017-now), and Regional Commercial Partner (2018) awarded by Magento.

Our multidisciplinary team brings together experts in technology, innovation, and new applications.

Together we explore, invent, and test technologies of the future, to better serve our clients.

Where can I see it in action ?

A demonstration store including the latest version of ElasticSuite is available here : ElasticSuite Demo

How to contribute ?

Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.

To learn about how to make a contribution, click here.

To learn about issues, click here. To open an issue, click here.

Main Features

Current version

The current version 2.10.0 has been focused on the Compatibility with Magento 2.4.0.

Feel free to read the whole changelog of this version here

This version is designed to be used on both Magento Open Source and Commerce versions >2.4.

Actually, there are the features actually included :


  • Virtual categories :

    ElasticSuite allows you to define categories based on rules (in addition to the standard manual selection). The rule definition is based on the Magento rules components, so you will not be disoriented. You are able to define categories such as "All products for men that are currently discounted".

    The engine will automatically refresh products matching the selection in Front-Office and will prevent you from having to re-assign products manually.

    Virtual Categories

    A dynamic preview of the results in the Back-Office is also included for more convenience.


  • Recommendations engine :

    On top of the behavioral analysis part will come our recommendations engine. It allows you to propose custom recommendations to your customers, based on their previous visits on your websites, and on other customer behaviors.

    Recommendations features are :

    • "Customers also bought"
    • Similar products
    • Cross Selling
    • Per-user recommendations, based on current customer profile and its previous visits and orders.

  • Search optimizations :

    ElasticSuite also features several ways to optimize the search engine relevance. This part is again based on rules that can be defined in the Magento's back-office.

    This allows you to create rules like "Boost all products that are in stock", "Boost all new products", "Boost men products", etc ...

    Search Optimizers

    You are also able to preview each fine-tuning before publishing it :

    Search Optimizers Preview


  • Behavioral Optimizers :

    This allows you to build rules matching your customer's behavior. Thanks to this feature, optimization rules like "Apply a boost for most viewed products" or "Boost the top sales products" are now possible to create.


  • Categories Merchandising :

    A new Merchandising panel has been added into the category edition screen of Magento's Back-Office. It features a direct preview of the current product list according to category settings.

    Inside this panel, you are also able to use a drag-and-drop interface to apply custom sort order on some of the category products.

    This feature is compatible with "standard" categories but also with the Virtual Categories described before.

    Virtual Categories


  • Facet Management by category :

    Inside the Display Settings panel of each category, you will be able to customize various layered navigation filters parameters :

    • Filter position (pinned/unpinned)
    • Display mode (always hidden, always displayed, automatic mode)
    • Facet Max Size
    • Facet coverage
    • Facet sort order

    This allow you to have a deeper level of configuration for your layered navigation for each category.

    Facet by category


  • Search Analytics :

    ElasticSuite features a Search Usage dashboard.

    It gives to the merchants merchandising team a dashboard displaying the following panels :

    • Global metrics : number of searches, pages views, sessions with/without search and number of unique visitors.
    • Popular search terms : to see what is actually trending, and how often a given search term is bringing conversion.
    • Spellchecked search terms : to identify common mistakes and fix them with Thesaurus.
    • 0 results search terms : to create a redirect for these search terms or to customize them.
    • Percentage of sessions with search against sessions without search.
    • Percentage of spellchecked requests.
    • Conversion rate for session with search against sessions without search.

    Search Analytics


  • Search Terms Merchandising :

    A new Merchandiser link has been added into the search term screen of Magento's Back-Office. It features a direct preview of the current product list that will be returned by this search query in front office.

    Inside this panel, you are also able to use a drag-and-drop interface to apply custom sort order on some of the products (Eg : to ensure your bestseller always appear at first position).

    Term Merchandiser


  • Products, Categories & Attributes autocomplete :

    ElasticSuite features enhanced content in the autocomplete box : popular search terms, products and categories, and also attributes.

    The autocomplete is fully extensible to add custom content, such as shop pages (if your store uses a store locator), CMS pages, etc...

    You can see the wiki page about adding custom content into the autocomplete results.

    Products Autocomplete


  • Enhanced thesaurus management :

    Thesaurus are now managed directly by the engine instead of the legacy Magento's behavior.

    Our module allows you to add complete thesauri in the Magento Back-Office. Actually, the module supports two types of thesauri :

    • Synonyms : standard synonym feature, let you contribute a list of terms which are synonyms of each others.

    Synonyms

    This means that adding a synonym between "men" and "man" will make it working in all queries containing "men" like "men shirt" or "men pants" instead of having to define a synonym for each query.

    • Expansions : this kind of thesaurus allows to expand all search for a given term to an other list of terms.

    Expansions

    This means that adding an expansion between "sport" and "fitness, gym, running" will make it expanding for all queries containing "sport" like "sport shoes" (which would be expanded to "fitness shoes", "gym shoes", and "running shoes").


  • Autocomplete in layered navigation filters :

    The module allows the users to search into filters values via an autocomplete box.

    Facet Autocomplete


  • Enhanced price slider :

    The module features an out of the box price slider.

    Price Slider


  • Multiple select in layered navigation :

    The module allows customers to apply multiple values of the same filter criteria.

    Multi Select Facet


  • Multiple select for swatches :

    Same as above, the module allow the users to choose several swatches for filtering.

    Multi Select Swatches


  • Redirect on one result :

    The module allow to redirect to the product page when a full text search matches only one product.

    Redirect One Result


  • Approaching search and spellchecking :

    The module automatically detects typing mistakes and handles correct results for them. Don't worry about "fat-finger syndrome" anymore !

    Approaching Search


  • Automatic stopwords detection :

    The module is able to automatically detect "stopwords" based on their frequency into the search index. This means the engine is able to deal with queries containing stopwords, but also with pure stopwords queries such as "to be or not to be" or even "he and she"!


  • Fully Configurable relevance configuration :

    You are able to customize - on your own, via a dedicated screen in Magento's back-office - each technical parameters that are used to communicate with ElasticSearch. Doig so, you can fine-tune the engine's configuration to fit your needs according to your store's data typology.


  • Customizable filters :

    Each attribute can now be configured in Magento's back-office to change its behavior when used for filtering

    • Conditional display of the filter based on its coverage rate.
    • Maximum number of elements displayed by the filter.
    • Sort order of elements of the filter.

    Facet Configuration


And more to come !

The next versions that will be coming all among this year will include the following features :

  • And many of our users' RFCs !

    There are now many people using ElasticSuite and we are very happy to see this ! Feel free to share you RFCs with us by submitting issues !

Documentation

Documentation is available here.

The User Guide is also available on PDF format here

Standards & Code Quality

Built on top of Magento2, our module respects all its prerequisites and code quality rules.

You can also find our PHPCS Standards and PHPMD rulesets in the Resource directory.

The module is also continuously tested on :

Tools Results
Code Climate Code Climate
Comments
  • Unable to search by SKU

    Unable to search by SKU

    I've tried search using SKU with the 2.4.x branch but it's still a no go. No results turn up. From what I've seen there have been other tickets that says they are solved but then commented later on that they do not work.

    Magento Version : CE2.1.4 ElasticSuite Version : 2 Environment : both

    opened by robbanl 36
  • Error on Interceptor::addSortFilterParameters() in /var/  /Plugin/LayerPlugin.php:78

    Error on Interceptor::addSortFilterParameters() in /var/ /Plugin/LayerPlugin.php:78

    Hello,

    if I enable this module I get a 500 error on the frontend with following error message

    Fatal error: Uncaught Error: Call to undefined method Magento\Catalog\Model\ResourceModel\Product\Collection\Interceptor::addSortFilterParameters() in /var/www/xxx/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Plugin/LayerPlugin.php:78 Stack trace: #0 /var/www/xxx/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Plugin/LayerPlugin.php(59): Smile\ElasticsuiteCatalog\Plugin\LayerPlugin->setSortParams(Object(Magento\Catalog\Model\Layer\Category\Interceptor), Object(Magento\Catalog\Model\ResourceModel\Product\Collection\Interceptor)) #1 /var/www/xxx/htdocs/vendor/magento/framework/Interception/Interceptor.php(123): Smile\ElasticsuiteCatalog\Plugin\LayerPlugin->beforePrepareProductCollection(Object(Magento\Catalog\Model\Layer\Category\Interceptor), Object(Magento\Catalog\Model\ResourceModel\Product\Collection\Interceptor)) #2 /var/www/virtual/xxx/var/generation/Magento/Catalog/Model/Layer/Category/Interceptor.php(52): Magento\ in /var/www/xxx/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Plugin/LayerPlugin.php on line 78

    Following Versions are used:

    elasticsuite 2.3.0 and 2.3.1 magento 2.1.3 php 7

    bug 
    opened by anethum 33
  • All products appear in each category when category filter disabled (2.4 only)

    All products appear in each category when category filter disabled (2.4 only)

    Once catalog/search/engine is set to "elasticsuite" all products are visible in every category.

    Preconditions

    Magento Version : 2.4 CE ElasticSuite Version : 2.10 Elasticsearch: 7.8.1 PHP: 7.3.20

    Multi-Store setup (3 websites)

    Environment : developer

    Steps to reproduce

    1. Create a couple of categories
    2. Create a product and link it to one or more categories (not all categories though)
    3. Set Catalog -> Catalog -> Catalog Search -> Search Engine to "ElasticSuite"
    4. Set "Display Category Filter" (Config -> Catalog -> Catalog -> Layered Navigation) to "No"
    5. Reindex everything
    6. Flush cache
    7. Visit categories in frontend

    Expected result

    1. Categories should display the products that are linked to them

    Actual result

    1. Each category shows all products of the catalog

    Once I disable the smile modules and revert back to "Elasticsearch 7" search engine the store works as expected.

    EDIT: updated description to include the crucial part (step 4).

    bug 
    opened by OvalMedia 32
  • Elastic Suite 2.2.x Magento 2.1 Custom Theme compatibility issue.

    Elastic Suite 2.2.x Magento 2.1 Custom Theme compatibility issue.

    Installed fresh copy of Magento 2.1 with elasticsuite 2.2.x Fully Functional 2.1 with Elastic suite working correctly.

    Preconditions

    1. Magento 2.1, php7.0.8, mysql 5.7, nginx, Elastic Suite 2.2.x
    2. Proto Magento 2.1 theme version 2.3.2

    Steps to reproduce

    1. Verify Magento 2.1 & elasticsuite 2.2.x is functioning
    2. Copy Theme files to Magento folder
    3. Run php bin/magento setup:upgrade
    4. Run php bin/magento setup:di:compile
    5. Run php bin/magento setup:static-content:deploy

    Expected result

    1. Correctly Deployed Static content of the New custom Porto theme.

    Actual result

    1. Result is a known Error with _module.less issue but not with Luma or Blank Theme
    2. Results An issue "variable @autocomplete-item__border is undefined in file" 3. _module less

    I know this issue is known and that's the reason for using the 2.2.x version to begin using Elastic Suite but before i go complaining to the Theme dev I wanted to see what Team-Smile has to say. Also for dev purposes i can supply a custom them for your trouble shooting.

    opened by acidreian666 29
  • After upgrade to magento 2.3.2 site broken

    After upgrade to magento 2.3.2 site broken

    Preconditions

    Magento Version : magento 2.3.2

    ElasticSuite Version :2.8.0

    Environment :Developer

    Third party modules :

    Steps to reproduce

    1. composer require "magento/magento-cloud-metapackage":"2.3.2" --no-update
    2. bin/magento setup:upgrade
    3. 500 error Fatal Error: 'Class 'Magento\CatalogInventory\Model\Plugin\Layer' not found' in '/var/www/vhosts/default/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Plugin/LayerPlugin.php' on line 25

    Expected result

    1. can normally go to home page

    Actual result

    <error>
    <messages>
    <error>
    <data_item>
    <code>500</code>
    <message>
    <![CDATA[
    Fatal Error: 'Class 'Magento\CatalogInventory\Model\Plugin\Layer' not found' in '/var/www/vhosts/default/vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Plugin/LayerPlugin.php' on line 25
    ]]>
    </message>
    <trace>
    <![CDATA[ Trace is not available. ]]>
    </trace>
    </data_item>
    </error>
    </messages>
    </error>
    

    image

    bug 
    opened by a970032 28
  • Error: Call to a member function getSearchQueriesByChildren() on string in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Model/Layer/Filter/Category.php on line 71

    Error: Call to a member function getSearchQueriesByChildren() on string in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Model/Layer/Filter/Category.php on line 71

    I get this error when I try to load the result search page.

    The function getSearchQueriesByChildren() executes on $currentCategory->getVirtualRule(). In my case $currentCategory->getVirtualRule() is a string like this:

    "a:6:{s:4:"type";s:62:"Smile\ElasticsuiteVirtualCategory\Model\Rule\Condition\Combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}"

    That explains the error, but is not clear to me if I did something wrong in the config/install of that this is a issue.

    opened by Nielex 28
  • High JVM heap usage resulting in GC loop and unresponsive ElasticSearch

    High JVM heap usage resulting in GC loop and unresponsive ElasticSearch

    Preconditions

    Magento Version : 2.2.6 EE (Cloud) ElasticSuite Version : 2.6.4 Environment : Production JVM Heap Size : 8G ElasticSuite Config : config

    Steps to reproduce

    After the ElasticSearch service is running for a while JVM heap usage gets to 100% resulting in GC loop and unresponsive ES. ES has to be restarted and reindex in order to get the site working again.

    Are there any recommended settings that should be used on ES based on a number of products/categories/customers?

    We were using ElasticSearch without ElasticSuite before, with smaller Heap Size, and it worked without any issues so we think it's something related to ElasticSuite module or misconfiguration of it.

    bug 
    opened by adjogic 26
  • Magento 2.4.5 compatibility.

    Magento 2.4.5 compatibility.

    Magento 2.4.5 will land on August 9th.

    It's already added in our integration test suite for branch 2.10.x.

    All tests are working actually which is a good start.

    We need to check that all features are functioning as expected.

    feature 
    opened by romainruaud 25
  • GraphQL Search Request - Internal Error on Magento 2.3.4

    GraphQL Search Request - Internal Error on Magento 2.3.4

    By developing using GraphQL, Elastiscsuite tries to retrieve the index name from the Search Request (graphql_product_search). Which is not declared on vendor/smile/module-elasticsuite-catalog/etc/elasticsuite_search_request.xml. Therefore, this is not mapped on Elasticsearch as well.

    Preconditions

    Magento Version : EE 2.3.4 ElasticSuite Version : 2.8.4 Environment : Developer and Production Third party modules : -

    Steps to reproduce

    1. Create a /graphql post/request (using Postman for example).
    2. Check the error response.
    3. Check Magento logs.

    Expected result

    GraphQL request should work as expected.

    Actual result

    The response is an Internal Error using Postman for example.

    Magento exception log throws:

    [2020-02-04 16:06:27] report.ERROR: index does not exist yet. Make sure everything is reindexed. {"exception":"[object] (GraphQL\\Error\\Error(code: 0): index does not exist yet. Make sure everything is reindexed. at /var/www/html/src/vendor/webonyx/graphql-php/src/Error/Error.php:174, LogicException(code: 0): index does not exist yet. Make sure everything is reindexed. at /var/www/html/src/vendor/smile/elasticsuite/src/module-elasticsuite-core/Index/IndexOperation.php:117)"} []

    Thanks,

    bug 
    opened by fjmiguel 25
  • Elastic Suite slow comparing to commercial extensions

    Elastic Suite slow comparing to commercial extensions

    Preconditions

    Why Elastic Suite is so slow in autocomplete comparing to Elastic commercial extensions from Amasty, Wyomind nad Mirasvit? which is blazing fast when you just try to search. Even comparing to old mysql Instant Search from Itoris or Mageworx - its just slow. Customers expect "algolia" style instant results, not results after 1-2seconds....

    Magento Version : 2.3

    ElasticSuite Version : latest

    Environment : clean Magneto with sample data

    Third party modules : NO

    Steps to reproduce

    1. Just install Elastic Suite on vanilla Magento 2.3
    2. Install sample date - or even yours
    3. Try to search with autocomplete

    Expected result

    Actual result

    1. [Screenshot, logs]
    opened by tomekjordan 25
  • Installing the module with Docker : suboptimal step to define ES location

    Installing the module with Docker : suboptimal step to define ES location

    While installing the module on a dockerized development environment, the ES instance is not situated in localhost but in a custom alias. We should apply this step but it would require to set an environment specific value in a global setting...

    Preconditions

    Magento Version : any (but here : 2.2 EE B2B)

    ElasticSuite Version : any

    Environment : any

    Third party modules : N/A

    Tests done

    • I tried to use Magento 2.2 config:set before installing the module, but it complain the configuration does not exists (and we cannot install the module before adding this configuration !!)
    • I could set this value in env.php, according to new patterns from Magento but I wanted to commit this step somewhere, for easy dev env install
    • Eventually I just load the value with INSERT INTO vr_core_config_data (path, value) VALUES ('smile_elasticsuite_core_base_settings/es_client/servers', 'elasticsearch:9200') in an install script... but it's far from awesome :(

    Ideas

    I know it's not a easy thing to fix, but first, the documentation is wrong. It should at least use Magento 2.2 patterns...

    In a perfect world, the module should be installable easily, and this configuration should not be used in the upgrade script, but at least in a separate command, or triggered when doing the first indexation...

    enhancement 
    opened by shavounet 24
  • Thesaurus issues

    Thesaurus issues

    I am using the thesaurus synonyms feature to allow customers to search for a old SKU, but find the new product. Sometimes my SKU has to change and i have a replacement product which has the same/similar product title.

    EDIT: I have noticed that my magento2_default_thesaurus index is blank. I assume this is the cause, but why isnt my thesaurus index containing data? I have a few other synonym entries too along with some expansions.

    I found the following in my elasticsearch.log. It appears it deletes the index as soon as it creates it?

    [2022-12-31T17:11:35,209][INFO ][o.e.c.m.MetadataCreateIndexService] [my-hostname] [magento2_default_thesaurus_20221231_171135] creating index, cause [api], templates [], shards [1]/[0] [2022-12-31T17:11:35,244][INFO ][o.e.c.r.a.AllocationService] [my-hostname] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[magento2_default_thesaurus_20221231_171135][0]]]). [2022-12-31T17:11:35,284][INFO ][o.e.c.m.MetadataDeleteIndexService] [my-hostname] [magento2_default_thesaurus_20221231_131530/GWWcmV89S9i_mFV2iIjvqQ] deleting index [2022-12-31T17:15:28,783][INFO ][o.e.c.m.MetadataCreateIndexService] [my-hostname] [magento2_default_thesaurus_20221231_171528] creating index, cause [api], templates [], shards [1]/[0] [2022-12-31T17:15:28,817][INFO ][o.e.c.r.a.AllocationService] [my-hostname] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[magento2_default_thesaurus_20221231_171528][0]]]). [2022-12-31T17:15:28,858][INFO ][o.e.c.m.MetadataDeleteIndexService] [my-hostname] [magento2_default_thesaurus_20221231_171135/QZ99k1JSSsuETMV88fLhlQ] deleting index

    Preconditions

    Magento Version : 2.4.5-p1 CE

    ElasticSuite Version : 2.10.12.1

    Environment : Production

    Third party modules : AKP_CSP - Allow custom CSP rules ClickSavePrint_CustomNoRoute - My own module to turn everything after the last "/" into a search query when no product is found Fooman_Connect Fooman_ConnectLicenseSub Klaviyo_Reclaim Litespeed_Litemage MagePal_Core MagePal_GmailSmtpApp MageSuite_Magepack MageVision_FreeShippingAdmin Magefan_AdminUserGuide Magefan_Community Magefan_Blog Magefan_BlogGraphQl Magefan_GoogleShoppingFeed Magefan_WysiwygAdvanced Mageplaza_Core Mageplaza_DeleteOrders Mageplaza_Search Mageplaza_Smtp OlegKoval_RegenerateUrlRewrites SITC_Sinchimport - product import plugin Smartwave_Core Smartwave_Dailydeals Smartwave_Filterproducts Smartwave_Megamenu Smartwave_Porto Smartwave_Socialfeeds Smile_ElasticsuiteAdminNotification Smile_ElasticsuiteCore Smile_ElasticsuiteCatalog Smile_ElasticsuiteCatalogGraphQl Smile_ElasticsuiteCatalogRule Smile_ElasticsuiteCatalogOptimizer Smile_ElasticsuiteTracker Smile_ElasticsuiteThesaurus Smile_ElasticsuiteSwatches Smile_ElasticsuiteIndices Smile_ElasticsuiteAnalytics Smile_ElasticsuiteVirtualCategory Ssx_RemoveElasticSuiteNotification StripeIntegration_Payments

    Steps to reproduce

    1. Add synonym including old SKU, new SKU, unique part of product name/title
    2. Search for old SKU

    Expected result

    1. Find correct product

    Actual result

    1. No products found/only incorrect products found
    opened by alexsmith2709 0
  • illegal_argument_exception OpenSearch  - Magento 2.4.5-p1

    illegal_argument_exception OpenSearch - Magento 2.4.5-p1

    Open search error appear in log, about the type of stored datas.. Append for me for entity_id.

    { "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [entity_id] in order to load field data by uninverting the inverted index. Note that this can use significant memory." } ], "type": "search_phase_execution_exception", "reason": "all shards failed", "phase": "query", "grouped": true, "failed_shards": [ { "shard": 0, "index": "magento2_mystore_catalog_category_20221221_031227", "node": "jFgagn_IQJKKNqXn7tJ8mA", "reason": { "type": "illegal_argument_exception", "reason": "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [entity_id] in order to load field data by uninverting the inverted index. Note that this can use significant memory." } } ], "caused_by": { "type": "illegal_argument_exception", "reason": "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [entity_id] in order to load field data by uninverting the inverted index. Note that this can use significant memory.", "caused_by": { "type": "illegal_argument_exception", "reason": "Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [entity_id] in order to load field data by uninverting the inverted index. Note that this can use significant memory." } } }, "status": 400 }

    Preconditions

    Magento Cloud

    Magento Version : EE 2.4.5-p1

    OpenSearch : Version 1.2.4

    ElasticSuite Version : Open Source ver. 2.10.x-dev

    Environment : Production

    Steps to reproduce

    1. Navigate to category
    2. Error appear in logs
    opened by BeardTech 0
  • Error on Magento 2 Reindex with Opensearch 2.4.1-1

    Error on Magento 2 Reindex with Opensearch 2.4.1-1

    Magento with ElasticSuite fails rebuilding the index with newest opensearch installation.

    Error is in "vendor/smile/elasticsuite/src/module-elasticsuite-core/Index/Bulk/BulkRequest.php"

    This is my temporary fix, to get indexer to work again: removing '_type' => '_doc' from every occasion:

    - $this->bulkData[] = ['index' => ['_index' => $index->getName(), '_type' => '_doc', '_id' => $docId]];
    + $this->bulkData[] = ['index' => ['_index' => $index->getName(),  '_id' => $docId]];
    

    Preconditions

    Magento Version : CE 2.4.5-p1

    ElasticSuite Version : 2.10.12.1

    Environment : Developer / Default

    Third party modules :

    Steps to reproduce

    1. use opensearch as search engine
    2. run php bin/magento indexer:reindex in console

    Expected result

    1. Reindex should work without any problems

    Actual result

    An exception is thrown:

    Catalog Search index process error during indexation process: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"}],"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"},"status":400} Amasty Customer Group Catalog Rule index has been rebuilt successfully in 00:00:00 Amasty Customer Group Catalog Rule index has been rebuilt successfully in 00:00:00 Amasty Customer Group Catalog Rule index has been rebuilt successfully in 00:00:00 ElasticSuite Category Indexing index process error during indexation process: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"}],"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"},"status":400} ElasticSuite Thesaurus Indexing index has been rebuilt successfully in 00:00:00 PHP Fatal error: Uncaught Elasticsearch\Common\Exceptions\BadRequest400Exception: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"}],"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"},"status":400} in /srv/http/magento2_dev.localhost/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php:693 Stack trace: #0 /srv/http/magento2_dev.localhost/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(333): Elasticsearch\Connections\Connection->process4xxError(Array, Array, Array) #1 /srv/http/magento2_dev.localhost/vendor/react/promise/src/FulfilledPromise.php(28): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array) #2 /srv/http/magento2_dev.localhost/vendor/react/promise/src/Promise.php(134): React\Promise\FulfilledPromise->then(Object(Closure), NULL) #3 /srv/http/magento2_dev.localhost/vendor/react/promise/src/Promise.php(168): React\Promise\Promise::React\Promise{closure}(Object(React\Promise\FulfilledPromise)) #4 /srv/http/magento2_dev.localhost/vendor/react/promise/src/Promise.php(231): React\Promise\Promise->settle(Object(React\Promise\FulfilledPromise)) #5 /srv/http/magento2_dev.localhost/vendor/react/promise/src/Deferred.php(36): React\Promise\Promise::React\Promise{closure}(Array) #6 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Client/CurlMultiHandler.php(246): React\Promise\Deferred->resolve(Array) #7 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Client/CurlMultiHandler.php(137): GuzzleHttp\Ring\Client\CurlMultiHandler->processMessages() #8 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/BaseFutureTrait.php(127): GuzzleHttp\Ring\Client\CurlMultiHandler->execute() #9 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/BaseFutureTrait.php(58): GuzzleHttp\Ring\Future\FutureArray->invokeWait() #10 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/BaseFutureTrait.php(127): GuzzleHttp\Ring\Future\FutureArray->wait() #11 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/BaseFutureTrait.php(58): GuzzleHttp\Ring\Future\FutureArray->invokeWait() #12 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/MagicFutureTrait.php(30): GuzzleHttp\Ring\Future\FutureArray->wait() #13 /srv/http/magento2_dev.localhost/vendor/ezimuel/ringphp/src/Future/FutureArray.php(27): GuzzleHttp\Ring\Future\FutureArray->__get('_value') #14 /srv/http/magento2_dev.localhost/vendor/smile/elasticsuite/src/module-elasticsuite-core/Index/AsyncIndexOperation.php(113): GuzzleHttp\Ring\Future\FutureArray->offsetGet('items') #15 /srv/http/magento2_dev.localhost/vendor/smile/elasticsuite/src/module-elasticsuite-core/Index/AsyncIndexOperation.php(130): Smile\ElasticsuiteCore\Index\AsyncIndexOperation->resolveFutureBulks() #16 /srv/http/magento2_dev.localhost/vendor/smile/elasticsuite/src/module-elasticsuite-core/Indexer/GenericIndexerHandler.php(128): Smile\ElasticsuiteCore\Index\AsyncIndexOperation->refreshIndex(Object(Smile\ElasticsuiteCore\Index\Index)) #17 /srv/http/magento2_dev.localhost/vendor/magento/module-catalog-search/Model/Indexer/Fulltext.php(176): Smile\ElasticsuiteCore\Indexer\GenericIndexerHandler->saveIndex(Array, Object(Generator)) #18 /srv/http/magento2_dev.localhost/generated/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Interceptor.php(32): Magento\CatalogSearch\Model\Indexer\Fulltext->executeByDimensions(Array, NULL) #19 /srv/http/magento2_dev.localhost/vendor/magento/module-catalog-search/Model/Indexer/Fulltext.php(236): Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor->executeByDimensions(Array) #20 [internal function]: Magento\CatalogSearch\Model\Indexer\Fulltext->Magento\CatalogSearch\Model\Indexer{closure}() #21 /srv/http/magento2_dev.localhost/vendor/magento/module-indexer/Model/ProcessManager.php(88): call_user_func(Object(Closure)) #22 /srv/http/magento2_dev.localhost/vendor/magento/module-indexer/Model/ProcessManager.php(75): Magento\Indexer\Model\ProcessManager->simpleThreadExecute(Array) #23 /srv/http/magento2_dev.localhost/vendor/magento/module-catalog-search/Model/Indexer/Fulltext.php(239): Magento\Indexer\Model\ProcessManager->execute(Array) #24 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(58): Magento\CatalogSearch\Model\Indexer\Fulltext->executeFull() #25 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(138): Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor->___callParent('executeFull', Array) #26 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(153): Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor->Magento\Framework\Interception{closure}() #27 /srv/http/magento2_dev.localhost/generated/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Interceptor.php(41): Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor->___callPlugins('executeFull', Array, Array) #28 /srv/http/magento2_dev.localhost/vendor/magento/module-indexer/Model/Indexer.php(443): Magento\CatalogSearch\Model\Indexer\Fulltext\Interceptor->executeFull() #29 /srv/http/magento2_dev.localhost/vendor/magento/module-indexer/Model/Indexer/DependencyDecorator.php(268): Magento\Indexer\Model\Indexer->reindexAll() #30 /srv/http/magento2_dev.localhost/vendor/magento/module-indexer/Console/Command/IndexerReindexCommand.php(110): Magento\Indexer\Model\Indexer\DependencyDecorator->reindexAll() #31 /srv/http/magento2_dev.localhost/vendor/symfony/console/Command/Command.php(255): Magento\Indexer\Console\Command\IndexerReindexCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #32 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(58): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #33 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Indexer\Console\Command\IndexerReindexCommand\Interceptor->___callParent('run', Array) #34 /srv/http/magento2_dev.localhost/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Indexer\Console\Command\IndexerReindexCommand\Interceptor->Magento\Framework\Interception{closure}(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #35 /srv/http/magento2_dev.localhost/generated/code/Magento/Indexer/Console/Command/IndexerReindexCommand/Interceptor.php(86): Magento\Indexer\Console\Command\IndexerReindexCommand\Interceptor->___callPlugins('run', Array, Array) #36 /srv/http/magento2_dev.localhost/vendor/symfony/console/Application.php(1021): Magento\Indexer\Console\Command\IndexerReindexCommand\Interceptor->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #37 /srv/http/magento2_dev.localhost/vendor/symfony/console/Application.php(275): Symfony\Component\Console\Application->doRunCommand(Object(Magento\Indexer\Console\Command\IndexerReindexCommand\Interceptor), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #38 /srv/http/magento2_dev.localhost/vendor/magento/framework/Console/Cli.php(116): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #39 /srv/http/magento2_dev.localhost/vendor/symfony/console/Application.php(149): Magento\Framework\Console\Cli->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #40 /srv/http/magento2_dev.localhost/bin/magento(23): Symfony\Component\Console\Application->run() #41 {main} thrown in /srv/http/magento2_dev.localhost/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php on line 693

    opened by thunder809 0
  • Categories are not saving after enable Smile_ElasticsuiteVirtualCategory

    Categories are not saving after enable Smile_ElasticsuiteVirtualCategory

    Preconditions

    Magento Version : Magento 2.4.4-p2 EE

    ElasticSuite Version : 2.10.10

    Environment : Developer mode

    Third party modules : NO

    Steps to reproduce

    1. Please enable Smile_ElasticsuiteVirtualCategory
    2. Go to admin category and save any category and we will face the issue with below message

    Error Message :

    A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.

    Screenshot from 2022-12-21 19-06-49

    Expected result

    1. Category should save without any error.
    needs update 
    opened by manishgoswamig 1
  • Enabling minification in production mode throws a javascript error in admin panel

    Enabling minification in production mode throws a javascript error in admin panel

    Enabling minification in production mode throws a javascript error in admin panel

    Constr is not a constructor TypeError: Constr is not a consructor
    

    Preconditions

    Enable minification at dev/js/minify_files and production mode

    Magento Version : 2.4.5-p1

    ElasticSuite Version : 2.10.12.1

    Environment : production

    Third party modules :

    Steps to reproduce

    1. Open admin panel
    2. Login
    3. Open dev tools in browser

    Expected result

    1. No error

    Actual result

    image

    When blocking URL using chrome dev tools /static/adminhtml/Magento/spectrum/en_US/Smile_ElasticsuiteTracker/js/modal/component.min.js all works as expected The strange content at the top of the JS appears with minification only: image

    needs update 
    opened by passtet 1
  • Add missing propertymapping for eav attribute creation/updates

    Add missing propertymapping for eav attribute creation/updates

    The method \Magento\Eav\Setup\EavSetup::addAttribute parses the input data for an attribute added/updated with a update script / patch and removes all not configured attributes - therefore all attributes columns that are added by this module can not be updated programmatically.

    Within this pull request I added the created columns with their respective default values

    opened by brosenberger 0
Releases(2.10.12.1)
  • 2.10.12.1(Oct 24, 2022)

    :bug: Fixes

    • Move the routing guard function after product rewrite. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2748
    • Do not compute sub-categories aggregations when category filter is di… by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2755
    • Fix #2630 Adding greek lowercase filter by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2756

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.12...2.10.12.1

    Source code(tar.gz)
    Source code(zip)
  • 2.10.12(Oct 17, 2022)

    :package: Features & Improvements

    ElasticSuite will now warn you with a Back-Office alert message if :

    • your number of replicas is wrongly configured (#2726 by @vahonc )
    • your number of shards is wrongly configured (#2720 by @vahonc )
    • you are having ghost indices (#2721 by @vahonc )

    We also improved our search engine relevance in this release :

    • Allow to deal with accents in thesaurus (https://github.com/Smile-SA/elasticsuite/pull/2736)
    • Better multi-words matchings with thesaurus (https://github.com/Smile-SA/elasticsuite/pull/2740)
    • Improvements on phrase match boost by enhancing shingle length generated (https://github.com/Smile-SA/elasticsuite/pull/2714)

    :bug: Fixes

    • Fix #2628 where the generated subtree for a virtual category was not enough restrictive by @romainruaud in #2743
    • Fix #2730 by allowing to do both exact matching or "contains" when using SKU in rules by @romainruaud in #2742
    • Fix #2668 Mobile search bar is not opening on click by @cartok in https://github.com/Smile-SA/elasticsuite/pull/2669
    • #2672, Adding admin action logger for Elasticsuite by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2686
    • Add proxies for session object dependencies, for performance purposes by @Nuranto in https://github.com/Smile-SA/elasticsuite/pull/2667
    • Refactoring the "is not one of" operator for categories. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2671
    • Fixes #2636, adding a new search request declaration for rendering product widgets by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2670
    • Fix #2663 Remove js block, it's not used and causes errors with Magento 2.4.5 by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2702
    • #2700, Updating search context according to support category_uid by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2715
    • #2718, Fix creating/editing attribute set page in admin by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2727

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.11...2.10.12

    Source code(tar.gz)
    Source code(zip)
  • 2.9.13(Oct 14, 2022)

    :warning: Last 2.9.x version

    Due to the fact that Magento 2.3 is not supported anymore by Adobe (see https://experienceleague.adobe.com/docs/commerce-operations/release/lifecycle-policy.html), we will not either continue to maintain the 2.9.x Elasticsuite release line that was dedicated to Magento >= 2.3.5 versions.

    Only security issues or critical bugs will be adressed on this branch in the future.

    :bug: Fixes

    • Allow to deal with accents in thesaurus (#2736)
    • Better multi-words matchings with thesaurus (#2704 then replaced by #2738)
    • Improvements on phrase match boost by enhancing shingle length generated (#2714)
    Source code(tar.gz)
    Source code(zip)
  • 2.8.19(Oct 14, 2022)

    :warning: Last 2.8.x version

    Due to the fact that Magento 2.3 is not supported anymore by Adobe (see https://experienceleague.adobe.com/docs/commerce-operations/release/lifecycle-policy.html), we will not either continue to maintain the 2.8.x Elasticsuite release line that was dedicated to Magento <= 2.3.5 versions.

    Only security issues or critical bugs will be adressed on this branch in the future.

    :bug: Fixes

    :bug: Fixes

    • Allow to deal with accents in thesaurus (#2735)
    • Better multi-words matchings with thesaurus (#2703 then replaced by #2741)
    Source code(tar.gz)
    Source code(zip)
  • 2.10.11(Nov 14, 2022)

    :package: Features

    • Feature #2624, exclude categories from autocomplete results by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2634

    You can now exclude particular categories from the autocomplete results. By default, all categories are set to "Yes".

    image

    • Feature #2658, better fulltext matching by adding stemming on shingle generation. This ensures that, in the case of multi-words query, each of those words is properly stemmed and given the appropriate weight.

    This behavior can be rollbacked locally in your code by re-defining the shingle analyzer for your language locally.

    :bug: Fixes

    • Fixes #2590 Possible XSS issues from contributed data by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2593
    • Fix a deprecation warning (PHP 8.1 compatibility) by @vsushkov in https://github.com/Smile-SA/elasticsuite/pull/2537
    • Fixes #2547, removing typed properties for backward compatibility with php 7.3 by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2549
    • Fix #2552 Do not override attribute label with options labels. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2553
    • Fixes #2521, replacing should clause by should or must_not depending on the rule operator by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2539
    • [GraphQL] Translation support for category, price filter labels by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2560
    • Fixes #2545, using a local cache for better performance by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2563
    • Fixes #2555, updating constructor params by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2557
    • Allow using values from config.xml by @fredden in https://github.com/Smile-SA/elasticsuite/pull/2542
    • Fixes #2550, create custom class, extended from ArrayObject by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2558
    • Fixes #1977, saving product position on REST API call by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2594
    • Fixes #2556, Fixed passing null to parameter (PHP 8.1 compatibility) by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2573
    • Better multi-words synonyms matching. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2554
    • Fixes #2612, updating ProductsListPlugin by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2615
    • Fixes #2559, Avoid fatal error on delete virtual category in conditions by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2614
    • #2589 - Fix attribute data behavior when scoped by @Nuranto in https://github.com/Smile-SA/elasticsuite/pull/2605
    • Fix for wrong type casting in Adminhtml of Special Price attribute by @florisschreuder in https://github.com/Smile-SA/elasticsuite/pull/2586
    • Made the searchbar instantiatable multiple times by @cartok in https://github.com/Smile-SA/elasticsuite/pull/2566
    • Change name of virtual factory as it triggers the Magento magic class generation by @sippsolutions in https://github.com/Smile-SA/elasticsuite/pull/2626
    • Fix calls to setRequestPath on rewrites that may not exist by @lumnn in https://github.com/Smile-SA/elasticsuite/pull/2638
    • Feature #2624, exclude categories from autocomplete results by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2634
    • Fixes #2635, removing track_total_hits misbehave with opensearch by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2641
    • Removed duplicate Router by @meminuygur in https://github.com/Smile-SA/elasticsuite/pull/2646
    • Fixes #2629, Adding adjustment for updating default sort order by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2647
    • Adding Elasticsuite notification by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2649
    • Adding Elasticsuite notification by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2651
    • Append Elasticsuite version to adminhtml footer. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2653
    • Adding elasticsuite logo by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2650
    • Restore cutoff_frequency since ES7 still supports it. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2657
    • Add stemming on shingles by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2658

    New Contributors

    • @vsushkov made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2537
    • @fredden made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2542
    • @Nuranto made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2605
    • @florisschreuder made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2586
    • @cartok made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2566
    • @sippsolutions made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2626
    • @meminuygur made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2646

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.10...2.10.11

    Source code(tar.gz)
    Source code(zip)
  • 2.9.12(Sep 14, 2022)

    :bug: Fixes

    • Potential XSS injection vulnerability (#2590 #2593)
    • [GraphQL] Translation support for category, price filter labels by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2560
    • Adding Elasticsuite notification by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2649
    • Append Elasticsuite version to adminhtml footer. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2655

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.9.11...2.9.12

    Source code(tar.gz)
    Source code(zip)
  • 2.8.18(Sep 14, 2022)

    :bug: Fixes

    • Potential XSS injection vulnerability (#2590 #2593)
    • Adding Elasticsuite notification by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2648
    • Append Elasticsuite version to adminhtml footer. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2654

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.8.17...2.8.18

    Source code(tar.gz)
    Source code(zip)
  • 2.10.10(Sep 29, 2022)

    :package: Features

    :tada: ElasticSuite 2.10.10 is compatible with Magento 2.4.4 which means :

    • PHP 8.1 Compatibility
    • OpenSearch Compatibility

    This release is also compatible with Magento 2.4.1, 2.4.2 and 2.4.3 so you do not need to upgrade your Magento instance to use it :)

    In this release we also added the ability to generate virtual categories subtrees in https://github.com/Smile-SA/elasticsuite/pull/2489

    These is now a new button Generate Virtual Category Root Subtree on the category edit form in the Back-Office, for virtual categories.

    If you enable this, category filter for this virtual category will be generated according to the Root Category that has been configured to be used by you virtual category.

    Eg : on the Luma sample data catalog, if you create a virtual category "Top Sales", that has "Default Category" as root category, and you decide to generate automatically the subtree, when browsing "Top Sales", you'll be able to filter among "Men" and "Women" that are childrens of "Default Category".

    :bug: Fixes

    • Fixes #2447, Added improves for category URLs suffix on the different scopes by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2450
    • Fixes #2460, remove white space from array elements by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2463
    • Fixes #2296, update 'is_wysiwyg_enabled' condition by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2462
    • Fixing cache key vs PHP version by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2470
    • Fixes #2448 force filters re-rendering after clear by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2468
    • Fixes #2448 Allowing removal of query/field filter(s) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2471
    • Feature #2431 Opt. zero product position indexing by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2473
    • Fixes #2438, prevent hardcore forbidden children attributes by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2465
    • Fixes #2209, update parameter list of the constructor by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2475
    • Don't execute code in the constructor of the Client class by @hostep in https://github.com/Smile-SA/elasticsuite/pull/2451
    • Fix for missing server name definition by @adamkarnowka in https://github.com/Smile-SA/elasticsuite/pull/2419
    • Fixes #2410, replace attributes collection by aggregating data of "indexed_attributes" by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2459
    • Do not compute aggregations when manipulating product collections in … by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2479
    • Fixes #1698 missing column on first install by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2481
    • Feat 2437 allows 0 false to be indexed by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2482
    • Fixes #2437 code quality by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2483
    • Fixes #2434 Support false/zero value in catalog rules by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2486
    • [GraphQL] Show Yes/No labels on aggregations by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2485
    • Fixes #2466, adding rules for distinguish between product types by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2495
    • Fix QueryResponse return type for Magento 2.4.4 by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2499
    • Add french stemmer override rules by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2503
    • [GraphQL] Show Yes/No labels on aggregations by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2504
    • Fixes #2490, replacing retrieving queryId instead queryText by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2500
    • Fixes #2502, re-adding the jquery Slider library as part of ElasticSuite by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2514
    • [FEATURE][GWSM2-985] - Fixes sort order case sensitivity. by @rensieeee in https://github.com/Smile-SA/elasticsuite/pull/2512
    • Fixes #2493, adding properly closing HTML tags to meet standards in JQuery 3.5.x by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2515
    • Fix filterable attribute saving for PHP8 by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2517
    • 2.4.4 Support (#2494) - Adding base OpenSearch compatibility checks by @chris-brabender in https://github.com/Smile-SA/elasticsuite/pull/2516
    • Magento 2.4.4 : Fix javascript components by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2520
    • Fixes #2494, duplicate an existing optimizer without any date by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2525
    • Fixed deprecation error in PHP 8.1 by @peterjaap in https://github.com/Smile-SA/elasticsuite/pull/2529
    • Fixing clusterinfo missing usage. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2528
    • Fixes #2494, login as customer without Date of Birth date by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2531
    • Fixes #2494, added check for date pattern by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2533

    New Contributors

    • @hostep made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2451
    • @adamkarnowka made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2419
    • @rensieeee made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2512
    • @chris-brabender made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2516

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.9.1...2.10.10

    What's Changed

    • Fixes #2447, Added improves for category URLs suffix on the different scopes by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2450
    • Fixes #2460, remove white space from array elements by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2463
    • Fixes #2296, update 'is_wysiwyg_enabled' condition by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2462
    • Fixing cache key vs PHP version by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2470
    • Fixes #2448 force filters re-rendering after clear by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2468
    • Fixes #2448 Allowing removal of query/field filter(s) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2471
    • Feature #2431 Opt. zero product position indexing by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2473
    • Fixes #2438, prevent hardcore forbidden children attributes by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2465
    • Fixes #2209, update parameter list of the constructor by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2475
    • Don't execute code in the constructor of the Client class by @hostep in https://github.com/Smile-SA/elasticsuite/pull/2451
    • Fix for missing server name definition by @adamkarnowka in https://github.com/Smile-SA/elasticsuite/pull/2419
    • Fixes #2410, replace attributes collection by aggregating data of "indexed_attributes" by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2459
    • Do not compute aggregations when manipulating product collections in … by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2479
    • Fixes #1698 missing column on first install by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2481
    • Feat 2437 allows 0 false to be indexed by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2482
    • Fixes #2437 code quality by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2483
    • Fixes #2434 Support false/zero value in catalog rules by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2486
    • [GraphQL] Show Yes/No labels on aggregations by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2485
    • Virtual categories subtree by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2489
    • Fixes #2466, adding rules for distinguish between product types by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2495
    • Fix QueryResponse return type for Magento 2.4.4 by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2499
    • Add french stemmer override rules by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2503
    • [GraphQL] Show Yes/No labels on aggregations by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2504
    • Fixes #2490, replacing retrieving queryId instead queryText by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2500
    • Fixes #2502, re-adding the jquery Slider library as part of ElasticSuite by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2514
    • [FEATURE][GWSM2-985] - Fixes sort order case sensitivity. by @rensieeee in https://github.com/Smile-SA/elasticsuite/pull/2512
    • Fixes #2493, adding properly closing HTML tags to meet standards in JQuery 3.5.x by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2515
    • Fix filterable attribute saving for PHP8 by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2517
    • 2.4.4 Support (#2494) - Adding base OpenSearch compatibility checks by @chris-brabender in https://github.com/Smile-SA/elasticsuite/pull/2516
    • Magento 2.4.4 : Fix javascript components by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2520
    • Fixes #2494, duplicate an existing optimizer without any date by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2525
    • Fixed deprecation error in PHP 8.1 by @peterjaap in https://github.com/Smile-SA/elasticsuite/pull/2529
    • Fixing clusterinfo missing usage. by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2528
    • Fixes #2494, login as customer without Date of Birth date by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2531
    • Fixes #2494, added check for date pattern by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2533

    New Contributors

    • @hostep made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2451
    • @adamkarnowka made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2419
    • @rensieeee made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2512
    • @chris-brabender made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2516

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.9.1...2.10.10

    Source code(tar.gz)
    Source code(zip)
  • 2.9.11(Sep 14, 2022)

    What's Changed

    • Fixing cache key vs PHP version by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2470
    • Fixes #2448 force filters re-rendering after clear by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2468
    • Fixes #2448 Allowing removal of query/field filter(s) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2471
    • Feature #2431 Opt. zero product position indexing by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2473
    • Fixes #1698 missing column on first install by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2481
    • Feat #2437 allows 0 false to be indexed by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2482
    • Fixes #2434 Support false/zero value in catalog rules by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2486
    • [GraphQL] Show Yes/No labels on aggregations by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2485

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.9.10.1...2.9.11

    What's Changed

    • Fixing cache key vs PHP version by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2470
    • Fixes #2448 force filters re-rendering after clear by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2468
    • Fixes #2448 Allowing removal of query/field filter(s) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2471
    • Feature #2431 Opt. zero product position indexing by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2473
    • Fixes #1698 missing column on first install by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2481
    • Feat 2437 allows 0 false to be indexed by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2482
    • Fixes #2434 Support false/zero value in catalog rules by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2486
    • [GraphQL] Show Yes/No labels on aggregations by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2485

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.9.10.1...2.9.11

    Source code(tar.gz)
    Source code(zip)
  • 2.8.17(Sep 14, 2022)

    :bug: Fixes

    • Fix #2448 ensure effective collection reloading 2.8.x by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2472
    • Feature #2431 Opt. zero product position indexing 2.8.x by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2478
    • Feature #2437 Allow indexing 0 and false values (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2480
    • Fixes #2434 Support false/zero value in catalog rules (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2487

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.8.16.1...2.8.17

    What's Changed

    • Fix 2448 ensure effective collection reloading 2.8.x by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2472
    • Feature #2431 Opt. zero product position indexing 2.8.x by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2478
    • Feature #2437 Allow indexing 0 and false values (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2480
    • Fixes #2434 Support false/zero value in catalog rules (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2487

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.8.16.1...2.8.17

    Source code(tar.gz)
    Source code(zip)
  • 2.10.9.1(Sep 14, 2022)

    :bug: Fixes

    • Fix implicit dependencies introduced on Magento legacy AdminNotification module #2423
    • Fix wrong sort order of SKU based products widget #2432
    • Fix a tracking bug (#2390) when using the "login as customer" feature of Magento #2418
    Source code(tar.gz)
    Source code(zip)
  • 2.9.10.1(Sep 14, 2022)

    :bug: Fixes

    • Fix implicit dependencies introduced on Magento legacy AdminNotification module #2423
    • Fix wrong sort order of SKU based products widget #2432
    Source code(tar.gz)
    Source code(zip)
  • 2.10.9(Sep 14, 2022)

    Changes

    🚀 Going forward

    This release is the first pavement of a bigger plan for ElasticSuite. We decided to commit more resources to the maintenance and development of your favorite Magento module. That means, starting this version, we’ll include a completely optional telemetry module to understand how you are using this extension and where to focus our effort in improvement.

    We know this kind of announcement can make some uncomfortable, that’s why we want to be completely transparent about what we plan to collect and how, available here.

    On the first launch after the upgrade, you’ll see a lightbox offering you the opportunity to support this effort or not. Deactivation of the telemetry service will have no impact on the quality of the module, which will continue to serve you as always.

    :package: Functional

    Adaptative Price Slider

    Starting from this release, we added an adaptative Price Slider (#2371 #2372). This feature, which is disabled by default, can be enabled through Stores > Configuration > Elasticsuite > Catalog Search > Enable Adaptative Slider.

    If enabled, when necessary to support the presence of outlier values in the navigation context (for instance, a very high price amidst a majority of low prices), the price slider behavior changes so that the middle of the slider range corresponds to the median price instead of the price at the middle of the range.

    This is particularly useful when browsing a page (category or search results) that contains a high number of products within the same price range, and some "outliers" really far of the average price. Eg : a search result page with 99% of products between 10$ and 20$, and two products having prices of 900$ and 1000$.

    Visual Merchandiser (Magento Commerce)

    • Adding product from SKU has been added by @PierreGauthier in #2319 and #2330

    UX refactoring of the optimizer screen :

    • Refactoring of proportionals boost operators by @botisSmile and @rbayet #2318 #2334 #2351 #2354 #2362 #2367
    • Fix fieldset order by @botisSmile in https://github.com/Smile-SA/elasticsuite/pull/2334

    Page Builder compatibility :

    • Fix proper appliance of sort orders. by @romainruaud in #2361 #2397
    • Prevent side effect when building widgets conditions based on virtual… by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2391
    • Support pre-existing PageBuilder widgets (2.9.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2342

    :computer: Technical

    • Fixing the appliance of "is_discount" rules across differents customer groups by @rbayet in (#2401)
    • Add exclude in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2336
    • Add min_doc_count in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2363
    • Prevent rejection of documents with large description (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2378
    • Change tracking API definition by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2364
    • Fix category uid mapping by @romainruaud and @JeroenVanLeusden in https://github.com/Smile-SA/elasticsuite/pull/2347
    • Rework send tag function to be compatible with native JS (mad… by @botisSmile in https://github.com/Smile-SA/elasticsuite/pull/2360
    • Fixes #2316, added salt to id of the row element by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2359
    • Fix issue #2387 with multiselect condition save by @illidar in https://github.com/Smile-SA/elasticsuite/pull/2388
    • Fixes #2368, avoid use 'match' as an identifier by @vahonc in https://github.com/Smile-SA/elasticsuite/pull/2386
    • Fix for #2383 : Redirect to product page if only one result doesn't work in case of void return type in the controller by @vahonc in #2395

    New Contributors

    • @hbarza made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2344
    • @clawfire made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2376
    • @illidar made their first contribution in https://github.com/Smile-SA/elasticsuite/pull/2388

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.10.8.1...2.10.9

    Source code(tar.gz)
    Source code(zip)
  • 2.9.10(Sep 14, 2022)

    Changes

    🚀 Going forward

    This release is the first pavement of a bigger plan for ElasticSuite. We decided to commit more resources to the maintenance and development of your favorite Magento module. That means, starting this version, we’ll include a completely optional telemetry module to understand how you are using this extension and where to focus our effort in improvement.

    We know this kind of announcement can make some uncomfortable, that’s why we want to be completely transparent about what we plan to collect and how, available here.

    On the first launch after the upgrade, you’ll see a lightbox offering you the opportunity to support this effort or not. Deactivation of the telemetry service will have no impact on the quality of the module, which will continue to serve you as always.

    :package: Functional

    Adaptative Price Slider

    Starting from this release, we added an adaptative Price Slider (#2371 #2372). This feature, which is disabled by default, can be enabled through Stores > Configuration > Elasticsuite > Catalog Search > Enable Adaptative Slider.

    If enabled, when necessary to support the presence of outlier values in the navigation context (for instance, a very high price amidst a majority of low prices), the price slider behavior changes so that the middle of the slider range corresponds to the median price instead of the price at the middle of the range.

    This is particularly useful when browsing a page (category or search results) that contains a high number of products within the same price range, and some "outliers" really far of the average price. Eg : a search result page with 99% of products between 10$ and 20$, and two products having prices of 900$ and 1000$.

    Visual Merchandiser (Magento Commerce)

    • Adding product from SKU has been added by @PierreGauthier in #2319 and #2330

    UX refactoring of the optimizer screen :

    • Refactoring of proportionals boost operators by @botisSmile and @rbayet #2318 #2334 #2351 #2354 #2362 #2367
    • Fix fieldset order by @botisSmile in https://github.com/Smile-SA/elasticsuite/pull/2334

    Page Builder compatibility :

    • Fix proper appliance of sort orders. by @romainruaud in #2361 #2397
    • Prevent side effect when building widgets conditions based on virtual… by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2391
    • Support pre-existing PageBuilder widgets (2.9.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2342

    :computer: Technical

    • Fixing the appliance of "is_discount" rules across differents customer groups by @rbayet in (#2400)
    • Add exclude in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2336
    • Add min_doc_count in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2363
    • Prevent rejection of documents with large description (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2378
    • Change tracking API definition by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2364

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.9.9.1...2.9.10

    Source code(tar.gz)
    Source code(zip)
  • 2.8.16(Sep 14, 2022)

    Changes

    🚀 Going forward

    This release is the first pavement of a bigger plan for ElasticSuite. We decided to commit more resources to the maintenance and development of your favorite Magento module. That means, starting this version, we’ll include a completely optional telemetry module to understand how you are using this extension and where to focus our effort in improvement.

    We know this kind of announcement can make some uncomfortable, that’s why we want to be completely transparent about what we plan to collect and how, available here.

    On the first launch after the upgrade, you’ll see a lightbox offering you the opportunity to support this effort or not. Deactivation of the telemetry service will have no impact on the quality of the module, which will continue to serve you as always.

    :package: Functional

    Adaptative Price Slider

    Starting from this release, we added an adaptative Price Slider (#2371 #2372). This feature, which is disabled by default, can be enabled through Stores > Configuration > Elasticsuite > Catalog Search > Enable Adaptative Slider.

    If enabled, when necessary to support the presence of outlier values in the navigation context (for instance, a very high price amidst a majority of low prices), the price slider behavior changes so that the middle of the slider range corresponds to the median price instead of the price at the middle of the range.

    This is particularly useful when browsing a page (category or search results) that contains a high number of products within the same price range, and some "outliers" really far of the average price. Eg : a search result page with 99% of products between 10$ and 20$, and two products having prices of 900$ and 1000$.

    Visual Merchandiser (Magento Commerce)

    • Adding product from SKU has been added by @PierreGauthier in #2319 and #2330

    UX refactoring of the optimizer screen :

    • Refactoring of proportionals boost operators by @botisSmile and @rbayet #2318 #2334 #2351 #2354 #2362 #2367
    • Fix fieldset order by @botisSmile in https://github.com/Smile-SA/elasticsuite/pull/2334

    Page Builder compatibility :

    • Fix proper appliance of sort orders. by @romainruaud in #2361 #2397
    • Prevent side effect when building widgets conditions based on virtual… by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2391
    • Support pre-existing PageBuilder widgets (2.9.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2342

    :computer: Technical

    • Fixing the appliance of "is_discount" rules across differents customer groups by @rbayet in (#2399)
    • Add exclude in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2336
    • Add min_doc_count in term aggregation by @PierreGauthier in https://github.com/Smile-SA/elasticsuite/pull/2363
    • Prevent rejection of documents with large description (2.8.x) by @rbayet in https://github.com/Smile-SA/elasticsuite/pull/2378
    • Change tracking API definition by @romainruaud in https://github.com/Smile-SA/elasticsuite/pull/2364

    Full Changelog: https://github.com/Smile-SA/elasticsuite/compare/2.9.9.1...2.9.10

    Source code(tar.gz)
    Source code(zip)
  • 2.10.8.1(Nov 2, 2021)

    :bug: Fixes

    • Fix explode parameter to be string by @Coosos in #2322
    • Fix Wrong casing (typo) in LayeredNavAttribute namespace by @peterjaap in #2327
    Source code(tar.gz)
    Source code(zip)
  • 2.9.9.1(Nov 2, 2021)

    :bug: Fixes

    • Fix explode parameter to be string by @Coosos in #2322
    • Fix Wrong casing (typo) in LayeredNavAttribute namespace by @peterjaap in #2327
    Source code(tar.gz)
    Source code(zip)
  • 2.8.15.1(Nov 2, 2021)

    :bug: Fixes

    • Fix explode parameter to be string by @Coosos in #2322
    • Fix Wrong casing (typo) in LayeredNavAttribute namespace by @peterjaap in #2327
    Source code(tar.gz)
    Source code(zip)
  • 2.10.8(Oct 25, 2021)

    Changes

    :package: Functional

    • Page Builder compatibility :

      • Using virtual categories in Page Builder now works as expected thanks to @PierreGauthier in #2304
      • Page Builder widgets will also now use ES queries internally.
    • UX refactoring of the optimizer screen :

      • Moving and separating the preview into the available contexts (category view / search) by @botisSmile in #2294
      • Boost score editing has been improved with a slider by @botisSmile in #2302
      • General UX and display of optimizer form fields by @botisSmile in #2309
    • Hardlink in footer (#2273) can now be disabled through the back-office thanks to @vahonc in #2297

    :bug: Bug fixes

    • Fixing an issue when using category_uid in GraphQL queries (@JeroenVanLeusden #2315)
    • Properly fetching autocomplete configuration from store scope (@aamant #2314)
    • Fixing an issue (#2280) with GraphQL schema (@romainruaud #2284)
    • Fixing an issue (#2281) when installing from scratch (@romainruaud #2285)
    • Fixing an issue (#1890) with improper focus in autocomplete (@vahonc #2300)
    • Fixing an issue (#2261) when using flat categories with virtual categories (@vahonc #2298)

    :computer: Technical

    • Ability to define custom tokenizers from XML by @gusdemayo in #2222
    • Added a REST endpoint for tracker (useful for headless integration) by @botisSmile in #2275
    • Allow to configure field mapping from di.xml, authored by @sky-hub in #2121 and extended by @botisSmile in #2272 and #2274
    • Allow to enable tracking on website scope by @PierreLeMaguer in #2310
    Source code(tar.gz)
    Source code(zip)
  • 2.9.9(Oct 25, 2021)

    Changes

    :package: Functional

    • Page Builder compatibility :

      • Using virtual categories in Page Builder now works as expected thanks to @PierreGauthier in #2304
      • Page Builder widgets will also now use ES queries internally.
    • UX refactoring of the optimizer screen :

      • Moving and separating the preview into the available contexts (category view / search) by @botisSmile in #2294
      • Boost score editing has been improved with a slider by @botisSmile in #2302
      • General UX and display of optimizer form fields by @botisSmile in #2309
    • Hardlink in footer (#2273) can now be disabled through the back-office thanks to @vahonc in #2297

    :bug: Bug fixes

    • Fixing an issue (#1890) with improper focus in autocomplete (@vahonc #2300)
    • Fixing an issue (#2261) when using flat categories with virtual categories (@vahonc #2298)

    :computer: Technical

    • Added a REST endpoint for tracker (useful for headless integration) by @botisSmile in #2275
    • Allow to configure field mapping from di.xml, authored by @sky-hub in #2121 and extended by @botisSmile in #2272 and #2274
    • Allow to enable tracking on website scope by @PierreLeMaguer in #2310
    Source code(tar.gz)
    Source code(zip)
  • 2.8.15(Oct 25, 2021)

    Changes

    :package: Functional

    • Page Builder compatibility :

      • Using virtual categories in Page Builder now works as expected thanks to @PierreGauthier in #2304
      • Page Builder widgets will also now use ES queries internally.
    • UX refactoring of the optimizer screen :

      • Moving and separating the preview into the available contexts (category view / search) by @botisSmile in #2294
      • Boost score editing has been improved with a slider by @botisSmile in #2302
      • General UX and display of optimizer form fields by @botisSmile in #2309
    • Hardlink in footer (#2273) can now be disabled through the back-office thanks to @vahonc in #2297

    :computer: Technical

    • Added a REST endpoint for tracker (useful for headless integration) by @botisSmile in #2275
    • Allow to configure field mapping from di.xml, authored by @sky-hub in #2121 and extended by @botisSmile in #2272 and #2274
    • Allow to enable tracking on website scope by @PierreLeMaguer in #2310
    Source code(tar.gz)
    Source code(zip)
  • 2.10.7(Sep 30, 2021)

    :warning: setup:upgrade might be long

    This release contains an improvement in the tracking data storage (#2253).

    TL;DR : this release contains a Setup file that can run for a long time, please keep that in mind when deploying it into production.

    Elasticsuite used to store tracking data in daily indices, which ended up being quite resource consuming for an Elasticsearch cluster, especially if you have a long retention time (like 365 days) : the tracker was generating 2 daily indices for each store view (one for sessions, one for events), which means you'll have 730+ open indices after one year, or even sooner if you have multiple store views.

    We needed to make an improvement here, that's why tracking indices will now be stored with monthly indices, which should drastically reduce the footprint they have in the Elasticsearch cluster : this is better to have 12 monthly indices than 365 daily indices for the same amount of data.

    But we always take care of backward compatibility and we did not want merchants to lose any existing data. That's why this release contains a migration script, that will be run during the setup:upgrade : this script will use the Elasticsearch internal _reindex API to regroup all daily indices into monthly indices. This might take a long time if you have many existing tracking indices.

    The operation will wrap up all existing daily indices into monthly indices, and once it's done, will delete the unused old daily indices.

    Since the mapping of tracking indices has never changed since its inception, this process should not encounter any issues during merging. If this happens to be the case, the only workaround will be to manually delete the problematic daily indices.

    Changes

    :package: Functional

    • Added a way to configure the behavioral of rel="nofollow" for layered navigation filters : we added a new parameter for each attribute, that can be used to define if the layered navigation filters related to this attribute should be followed by robots or not.

    You will see a new parameter named "Add rel="nofollow" to filter links in Layered Navigation" in the Storefront properties panel of the attribute edition screen. Available values are "Yes" or "No" (by default).

    Note : Legacy behavior was "nothing", meaning the robots did follow the link. We sticked into this, so if you want to make your layered navigation filters rel="nofollow" you will have to switch this configuration for all your attributes.

    :bug: Fixes

    • An issue with swatches when their values are translated in multi-store setup (#2263)
    • Issues (#2005 #2255) occuring with products positions on Magento Commerce with de-synced row_id/entity_id (#2266)
    • Performances issues in layered navigation when many attributes are filterables (#2262)
    • Performance issue in layered navigation (#2267) thanks to @lbajsarowicz
    • An issue (#1933) with multi-word synonyms (#2217) thanks to @pzlamaniec contribution.
    • An issue (#2230) where products with the string no_selection in image attribute would not be catched by the "Only Products with images" (#2231)
    • a REST API issue where added type was replacing and not being added to the original TypeLocators (#2236)
    • an issue (#2145) where the "Schedule update" form was not working in the category edit screen in Magento Commerce version (#2249)
    • an issue (#2244) where the recurring setup file could cause issue when installing a Magento with pre-configured store views in the app/etc/config.php file (#2246).

    :computer: Technical

    • Use main query boost to calculate query rewrite boosts in Thesaurus (#2245).
    • Improve data tracking indices by moving them from daily to monthly (#2253).
    • Added support of "max_bucket" pipeline. (#2257).
    Source code(tar.gz)
    Source code(zip)
  • 2.9.8(Sep 30, 2021)

    :warning: setup:upgrade might be long

    This release contains an improvement in the tracking data storage (#2253).

    TL;DR : this release contains a Setup file that can run for a long time, please keep that in mind when deploying it into production.

    Elasticsuite used to store tracking data in daily indices, which ended up being quite resource consuming for an Elasticsearch cluster, especially if you have a long retention time (like 365 days) : the tracker was generating 2 daily indices for each store view (one for sessions, one for events), which means you'll have 730+ open indices after one year, or even sooner if you have multiple store views.

    We needed to make an improvement here, that's why tracking indices will now be stored with monthly indices, which should drastically reduce the footprint they have in the Elasticsearch cluster : this is better to have 12 monthly indices than 365 daily indices for the same amount of data.

    But we always take care of backward compatibility and we did not want merchants to lose any existing data. That's why this release contains a migration script, that will be run during the setup:upgrade : this script will use the Elasticsearch internal _reindex API to regroup all daily indices into monthly indices. This might take a long time if you have many existing tracking indices.

    The operation will wrap up all existing daily indices into monthly indices, and once it's done, will delete the unused old daily indices.

    Since the mapping of tracking indices has never changed since its inception, this process should not encounter any issues during merging. If this happens to be the case, the only workaround will be to manually delete the problematic daily indices.

    Changes

    :bug: Fixes

    • An issue with swatches when their values are translated in multi-store setup (#2263)
    • An issue (#1933) with multi-word synonyms (#2217) thanks to @pzlamaniec contribution.
    • Issues (#2005 #2255) occuring with products positions on Magento Commerce with de-synced row_id/entity_id (#2266)

    :computer: Technical

    • Use main query boost to calculate query rewrite boosts in Thesaurus (#2245).
    • Improve data tracking indices by moving them from daily to monthly (#2253).
    • Added support of "max_bucket" pipeline. (#2257).
    Source code(tar.gz)
    Source code(zip)
  • 2.8.14(Oct 11, 2021)

    :warning: setup:upgrade might be long

    This release contains an improvement in the tracking data storage (#2253).

    TL;DR : this release contains a Setup file that can run for a long time, please keep that in mind when deploying it into production.

    Elasticsuite used to store tracking data in daily indices, which ended up being quite resource consuming for an Elasticsearch cluster, especially if you have a long retention time (like 365 days) : the tracker was generating 2 daily indices for each store view (one for sessions, one for events), which means you'll have 730+ open indices after one year, or even sooner if you have multiple store views.

    We needed to make an improvement here, that's why tracking indices will now be stored with monthly indices, which should drastically reduce the footprint they have in the Elasticsearch cluster : this is better to have 12 monthly indices than 365 daily indices for the same amount of data.

    But we always take care of backward compatibility and we did not want merchants to lose any existing data. That's why this release contains a migration script, that will be run during the setup:upgrade : this script will use the Elasticsearch internal _reindex API to regroup all daily indices into monthly indices. This might take a long time if you have many existing tracking indices.

    The operation will wrap up all existing daily indices into monthly indices, and once it's done, will delete the unused old daily indices.

    Since the mapping of tracking indices has never changed since its inception, this process should not encounter any issues during merging. If this happens to be the case, the only workaround will be to manually delete the problematic daily indices.

    Changes

    :bug: Fixes

    • An issue (#1933) with multi-word synonyms (#2217) thanks to @pzlamaniec contribution.
    • Issues (#2005 #2255) occuring with products positions on Magento Commerce with de-synced row_id/entity_id (#2266)

    :computer: Technical

    • Use main query boost to calculate query rewrite boosts in Thesaurus (#2245).
    • Improve data tracking indices by moving them from daily to monthly (#2253).
    • Added support of "max_bucket" pipeline. (#2257).
    Source code(tar.gz)
    Source code(zip)
  • 2.10.6(Aug 16, 2021)

    :package: GraphQl features

    • The Show more feature of Luma's layered navigation filters is now available (#2196), through
      • a custom has_more field in Aggregation response objects
      • a custom viewMoreFilter GraphQL query, which also provides the ability to perform a search in the option values
    • Layered navigation filters positioning defined in admin is now correctly applied in category navigation (#2195).

    :package: Other features

    • The request types a search optimizer is configured for are now displayed in the admin optimizers grid (#2228).
    • For "Constant" search optimizers, the score boost gain value is now displayed in the admin optimizers grid (#2228).

    :computer: Technical

    • The request mapper plugin can now be applied to custom search containers beyond the legacy 'quick_search_container' and 'catalog_view_container' containers (#2200).
    • The 'attribute_set_id' Elasticsearch aggregation used internally by Elasticsuite is no longer exposed as a GraphQL aggregation result (#2197).
    • Backward compatibility has been introduced when indexing product attributes by their ID (#2198).
    Source code(tar.gz)
    Source code(zip)
  • 2.9.7(Aug 16, 2021)

    :package: Features

    • The request types a search optimizer is configured for are now displayed in the admin optimizers grid (#2228).
    • For "Constant" search optimizer, the score boost gain value is now displayed in the admin optimizers grid (#2228).
    Source code(tar.gz)
    Source code(zip)
  • 2.8.13(Aug 16, 2021)

    :package: Features

    • The request types a search optimizer is configured for are now displayed in the admin optimizers grid (#2228).
    • For "Constant" search optimizer, the score boost gain value is now displayed in the admin optimizers grid (#2228).
    Source code(tar.gz)
    Source code(zip)
  • 2.10.5(Jul 5, 2021)

    :package: Features

    • Added the ability to configure category name weight (#2191). This can be found in the Stores > Configuration > Elasticsuite > Catalogsearch configuration screen.

    • Added the support of Basic HTTP Authentication Encrypted thanks to @kdckrs (#2167)

    :computer: Technical :

    • Allow using script sorting (#2153)
    • Allow defining sub-aggregations across modules (#2186)
    • Improving indexing performance (#2187)

    :white_check_mark: Fixed :

    • An UX issue (#2090) with price slide on mobile devices (#2138)

    • An issue (#2162) where category rule cache was not cleared when saving a virtual category (#2171)

    • An issue (#1845) where manual order for layered navigation filters were not taken into account in GraphQL queries (#2149 #2150)

    Source code(tar.gz)
    Source code(zip)
  • 2.9.6(Jul 5, 2021)

    :computer: Technical :

    • Compatibility with PHP 7.4 (#2156)
    • Allow using script sorting (#2153)
    • Allow defining sub-aggregations across modules (#2186)

    :white_check_mark: Fixed :

    • An issue (#1845) where manual order for layered navigation filters were not taken into account in GraphQL queries (#2149 #2150)
    Source code(tar.gz)
    Source code(zip)
  • 2.8.12(Jul 5, 2021)

Owner
Smile - Open Source Solutions
Smile - Open Source Solutions
Doogle is a search engine and web crawler which can search indexed websites and images

Doogle Doogle is a search engine and web crawler which can search indexed websites and images, and then use keywords to be searched later. Written pri

Zepher Ashe 9 Jan 1, 2023
Nova Search is an open source search engine developed by the Artado Project.

Loli Search Loli Search açık kaynak kodlu bir arama motorudur ve yalnızca kendi sonuçlarını değil, diğer arama motorlarının sonuçlarını da göstermekte

Artado Project 10 Jul 22, 2022
Magento 2 Module for Search Engine Optimization

Magento 2 Search Engine Optimization Magento 2 Module to Improve Search Engine Optimization (SEO) on your Magento site. Installation Install the modul

Stämpfli AG 100 Oct 7, 2022
Search faster into Magento DevDocs and Magento StackExchange! 🔍⚡️

VS Code - Magento DevSearch Search faster into Magento DevDocs and Magento StackExchange! ?? ⚡️ Magento DevSearch is a VS Code extension that allows y

Rafael Corrêa Gomes 12 Oct 18, 2022
Magento ElasticSearch Implementation

Magento 2.x support : The repo for Magento 2 version of our module is available in the new repository of the module : https://github.com/Smile-SA/elas

Smile - Open Source Solutions 153 Nov 21, 2022
A privacy respecting free as in freedom meta search engine for Google and popular torrent sites

A privacy respecting free as in freedom meta search engine for Google and popular torrent sites

null 329 Dec 27, 2022
search non profitable charity or organization through api search

Non Profile Charity Search Search non profitable organization or get the details of an organization Installation Require the package using composer: c

Touhidur Rahman 5 Jan 20, 2022
Silverstripe-fulltextsearch - Adds external full text search engine support to SilverStripe

FullTextSearch module Adds support for fulltext search engines like Sphinx and Solr to SilverStripe CMS. Compatible with PHP 7.2 Important notes when

Silverstripe CMS 42 Dec 30, 2022
A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2

Simple Import / Export tool A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2. Table data

EcomDev B.V. 51 Dec 5, 2022
Production-grade rapid controller development with built in love for API and Search

Installation For CakePHP 4.x compatible version: composer require friendsofcake/crud For CakePHP 3.x compatible version: composer require friendsofca

Friends Of Cake 357 Jan 2, 2023
Algolia Search integration for Magento 1 - compatible with versions from 1.6.x to 1.9.x

Algolia Search for Magento 1.6+ End of Support ?? The Algolia Magento 1 extension has reached End of Life regarding support and maintenance. We do not

Algolia 163 Dec 20, 2022
A first party module to integrate Elastic App Search in Magento 2.

A first-party Magento integration for building excellent, relevant search experiences with Elastic App Search. ⚠️ This is a beta version of the client

elastic 25 Apr 22, 2022
Algolia Search integration for Magento 2 - compatible with versions from 2.3.x to 2.4.x

Algolia Search for Magento 2 ?? Need help? Check out our Technical Troubleshooting Guide. For feedback, bug reporting, or unresolved issues with the e

Algolia 147 Dec 20, 2022
This Repository contains a custom Workflow for Alfred which provides the function to instantly search in the Magento 2 DevDocs

Introduction Add the custom search to your Alfred Workflow and have a quicker access to the Magento 2 DevDocs. Installation Just download the alfredwo

David Lambauer 10 Jun 29, 2022
Automatically load the next page of products in Magento. Easy to install and configure, this module works 100% out of the box with vanilla Magento 1.9.x and earlier.

Automatically load the next page of products in Magento. Easy to install and configure, this module works 100% out of the box with vanilla Magento 1.9.x and earlier.

Strategery 123 Nov 20, 2021
Silverstripe-searchable - Adds to the default Silverstripe search by adding a custom results controller and allowing properly adding custom data objects and custom fields for searching

SilverStripe Searchable Module UPDATE - Full Text Search This module now uses Full Text Support for MySQL/MariaDB databases in version 3.* Adds more c

ilateral 13 Apr 14, 2022
JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

Eboubaker Eboubaker 2 Jul 31, 2022