Magento extensions & Pay-as-you-go development

10 years of business 2112 reviews 4.9 average rating
Magento 2

Improved Search

Instantly display the most relevant search results with Improved Search for Magento 2. Bring users to what they are looking for and easily convert their searches into sales.

Marketplace approved
Starting at €95
User guide

Install the Elasticsearch server

Elasticsearch is a real-time distributed search and analytics engine that allows you to explore your data very quickly. It is used for full-text search, structured search, analytics, and all three in combination.

And it packages up all this functionality into a standalone server that your application can talk to via a simple RESTful API, using a web client from your favorite programming language, or even from the command line.

The Improved Search extension will allow you to make the link between the search and analytics engine and Magento 2.

You can find more information on the product here:

Install and run Elasticsearch server

As Elastic advises, "the easiest way to understand what Elasticsearch can do for you is to play with it".

To be able to use the Improved Search extension and reach the server, you first need to have a recent version of Java. You can easily install the latest version of Java from

Then you can install and run the Elasticsearch engine following the below steps.

Install Elasticsearch

You can download the latest version of Elasticsearch from

Run Elasticsearch

To run Elasticsearch, open a console, and run the following command:

cd elasticsearch-<version>

If you’re running Elasticsearch on Windows, simply run:


Test Elasticsearch

You can easily test if the Elasticsearch engine is reached by trying to access http://localhost:9200/?pretty or by opening a new terminal window and running the following:

curl 'http://localhost:9200/?pretty'

You should then get:

You now have an Elasticsearch node up and running.

You can also check the official documentation to install Elasticsearch.

Configure the Elasticsearch Core

You can configure the Elasticsearch Core according to your needs in the Magento configuration from:
StoreSWyomindElasticsearch Core 

Enable the logs / debug

The extension comes with logs in order to help you to check the frontend requests, the indexation, and the Elasticsearch server status. 

Note that the debug mode depends on the IPs authorized in your Magento configuration.

Enable request log

A log file is created for the frontend requests:

Enable indexation log

A log file is created for the reindexation process:

Enable client log

A log file is created for the Elasticsearch client calls:

Enable Elasticsearch Server status log

A log file is created for the Elasticsearch Server status:

Receive a backend notification when the server fails

When the Elasticsearch Server status log is enabled, you can enable and define your own configuration for the backend notification subject and content.

Note that you have the possibility to use variables in the notification content:

  • {{store_id}}
    Store ID
  • {{code}}
    Store code
  • {{name}}
    Store name
  • {{server_version}}
    Elasticsearch Server version
  • {{servers}}

Receive a mail notification when the server fails

When the Elasticsearch Server status log is enabled, you can enable and define your own configuration for the email notification.

Note that you have the possibility to use variables in the email content: 

  • {{store_id}}
    Store ID
  • {{message}}
    Returned message
  • {{server_status}}
    Elasticsearch Server status
  • {{server_version}}
    Elasticsearch Server version

Configure the server settings

You can configure the general Elasticsearch settings.

Elasticsearch Server version

Here will be displayed the version of the Elasticsearch server that you have installed.

Note that the version will be updated with the right value after having saved the config a first time or using a command line.


The servers must be written as host:port and separated with a comma.
Follow this pattern for full available parameters.
Check that your servers are correctly configured by clicking on TEST servers.

Verify Host

This is only used for https connection. You can set that option to No if you don't have a valid SSL certificate.

Connect Timeout

Number of seconds after a timeout occurs for every request.
5 seconds

Configure the indexing settings

Index Prefix

This is used to prefix index names in order to avoid potential collisions. 

Index Settings

Having more shards enhances the indexing performance and allows to distribute a big index across machines and having more replicas enhances the search performance and improves the cluster availability.

When clicking on Use system value, the default configuration is reinitiated.

Be careful when modifying this parameter. Write consistency (one, quorum, or all) must be considered in order to avoid timeout write action.
More info here: Index settings properties reference

Analysis Settings

This is where you can define the analysis settings.

When clicking on Use system value, the default configuration is reinitiated.

See more about the Analysis settings.

Safe Reindex

Reindex in a temporary index and switch to it once finished. Especially useful for large product catalogs.

Automatically run indexers if invalidated

In some cases, you might need to reindex indexes automatically as it can take a lot of time. Then you can choose to automatically run indexers via a cron task when they are invalidated.

A notification is displayed in the header of Magento when indexes are invalidated.

If you disable this option, see how to run your indexes manually.

Check the status of the indexes from:SystemWyomind Elasticsearch CoreManage Indexes

Configure the search settings

Query Operator

By default, it is set to AND. You may have fewer results with the AND operator but they’ll be more relevant.
"digital camera" is translated to "digital AND camera" or "digital OR camera"

Enable Product Weight

This enables product weight modifier. It is only available for search results.

When product weight is enabled, you can assign a weight to any product from the backend product page in the Elasticsearch tab. 

Use parent images

By enabling this option, when a product (configurable or bundle) is found from the data of a child product, then the parent product images will be used instead of the child product images.

Return available products first?

Enable this option to return the products available for purchase before the products not available.

Configure the entities settings

You can configure the indexing of the attributes more finely. 

  1. Open each group of attributes using the arrow
  2. Find all the attributes grouped by type. 
  3. When fields are grayed out, it means that the attribute is indexed by default by the module.
    To be able to modify the searchable option, the attribute must be indexable.
  4. For an attribute to be searchable it must be indexed.
    To be able to modify all of the following options, the attribute must be searchable.
  5. You can boost each attribute you are indexing by assigning them a weight from 1 to 10.
    Note that 10 is the highest weight. 
  6. You can start matching results from the first 1 to 5 characters. 
  7. You can start matching results from the last 1 to 5 characters. 
  8. The analyzer defines the way in which the content of the attributes will be analyzed. You have the choice between several analyzers. 
    Note that the automatic mode is suitable in most cases. 
  9. You have the possibility to enable the approximative search for each attribute and choose the fuzzyness level:

    0: the number of possible errors is 0 whatever the size of the search word
    1: the number of possible errors is 1 whatever the size of the search word
    2: the number of possible errors is 2 whatever the size of the search word
    AUTO: generates an edit distance based on the length of the term. Should generally be the preferred value. 

    For the AUTO mode, the length of the words has an impact on the edit distance:
    0..2: must match exactly
    3..5: one edit allowed
    >5: two edits allowed

    Check the Elasticsearch documentation for more info on the fuzzy query mode
The attributes used in the search with Advanced Layered Navigation are automatically added to the Elasticsearch Core index.


When the Product Search is enabled, the products are indexed in Elasticsearch.

You can define the image size in pixels. 

The images will be used in the autocomplete with Enhanced Autocomplete and Multifaceted Autocomplete.

Then, select and configure the attributes that are searchable.
Product Name

Attention, after having selected the attributes, indexes are invalidated. According to your configuration, they will be automatically reindexed by cron task, or you'll have to manually reindex them.

Developer tools

Test Search

The Test Search is equivalent to the frontend search with debug info. This allows you to control how the search will work with the Elasticsearch Core configuration.

You can access the Test Search page from: 
SystemWyomind Elasticsearch coreTest Search

You can configure:

  • Search term
    Add the term you want to search.
  • Results limit
    Define a limit for the number of results displayed.
  • Storeview
    Choose the store view from where you want to run the search.
  • Customer Group
    Choose the customer group to search from.
    Useful to control the product prices for a specific customer group.

After that, you can click on Search

A grid will display the results for your search. 

When clicking on Show details, you should get more details about the results.

This is particularly useful to know everything that is returned in the search.

The explanation field explains how the score is calculated and why the product appears first in the search results.

Test Analyzers

As our module offers the possibility to create your own analyzers, it is important to be able to test them.

You can access the Test Analyzers page from: 
SystemWyomind Elasticsearch coreTest Analyzers

Add your code in the Custom Analyzers field, select the Built-in Analyzers you want to test, and add a Test phrase

Click on Run Tests

The result of the analyzer will be displayed in the table below. 

Below are some examples:

whitespace: will analyze by separating words with spaces

standard: will separate words with spaces, apostrophes, chevrons ... and remove HTML tags to keep only useful content

Manage the indexes

You have the possibility to get more information and to manage your indexes directly from the table in:
SystemWyomind ELasticsearch CoreManage Indexes

The indexes are automatically updated after the below actions:

  • Add / Edit / Delete a product
    The product is updated at the product index level.
  • Category products list update
    The category is updated at the category index level and the products previously and currently linked to the category are updated.
  • Review added to a product
    The product rating is updated at the product index level. 


There are several types of index:


In the Description column, when clicking on More information, you can see:

  • luma_2_product
    It is the name of the index at the Elasticsearch server level under the below format:
    the prefix + the storeview code + the index type
  • 2046 documents
    It means that 2046 products are indexed.
  • 4187,21 kB
    It is the size of the index on the disk.
  • View Mapping
    When clicking on View Mapping, a popup should open and display the mapping data. 

Last Update

The last time the index has been run will be recorded in the Last Update column.

Last Action State

The last action state will be recorded in this column. You can also see the number of entities that were indexed by hovering the mouse over the status.

When running an index, a progress bar will display its status and some information about the indexing process.


From the Status column, you can see if the indexes are valid of invalidated. 

According to your configuration, indexes will be automatically reindexed by cron task, or you'll have to manually reindex them.


From the Action column, you can choose to:

  • Flush the index: this will empty, reset the index.
  • Run the index: this will fully reindex the entities.
  • Run via cron: this will trigger the cron task to run the selected index.

Note that you can reindex any of your attributes. See how to make your attribute searchable.

Browse Data

You can easily see what is indexed at the product level in that section:
SystemWyomind ELasticsearch CoreBrowse Data

From the Action column, you have the possibility to:

  • Edit each line
    Redirects you to the product page
  • See the raw data
    Opens a popup that displays the raw data; what is really indexed in Elasticsearch.

Use the Command Line Interface

The extension comes with several command lines you can easily use.

Update Elasticsearch server version

To update the Elasticsearch server version with the right, you can use the below command line:

bin/magento wyomind:elasticsearchcore:update:server:version​

Reindex your data

To reindex your data, you can use the below command line:

bin/magento wyomind:elasticsearchcore:indexer:reindex [options]


  • -s storecode or --store storecode
    The code of the store view for which to re-index data.
    Note that this parameter is unique, you can’t add many store codes.

    To reindex data for the store view which code is “storefr”:

    bin/magento wyomind:elasticsearchcore:indexer:reindex -s storefr


    bin/magento wyomind:elasticsearchcore:indexer:reindex --store storefr
  • -i type or --index type
    The index types: product

    To reindex products:

    bin/magento wyomind:elasticsearchcore:indexer:reindex -i product


    bin/magento wyomind:elasticsearchcore:indexer:reindex --index product
    You can also reindex your CMS pages and categories when using the Enhanced Autocomplete or the Multifaceted Autocomplete extension. 
  • -p ID or --product ID
    The ID of the product to reindex. 
    Note that this parameter is unique, you can’t add many products.
    To reindex product with ID 2:
    bin/magento wyomind:elasticsearchcore:indexer:reindex -i product -p 2


    bin/magento wyomind:elasticsearchcore:indexer:reindex --index product --product 2

When running an index, a progress bar will display its status and some information about the indexing process.

Note that this will be logged in Wyomind_ElasticsearchCore_Indexation.log.

Manage your search results

Like the product attributes, you can assign weight to your products directly.

Give weight to your products

Assign weight to products

To boost your products in the search results, you can give them a weight. For this, go in:

There, edit a product you want to showcase.

In the Wyomind Elasticsearch Core tab, you can define the weight from 1 to 10. 

Note that 10 is the highest weight. The higher the weight, the more the product will appear first in the search results.

This is only possible when the Product weight option is enabled in the Elasticsearch Core configuration. 

Ignore products in the indexation

You have the possibility to ignore products in the indexation process. For this, go in:

There, edit a product you want to ignore.

In the Wyomind Elasticsearch Core tab, you can switch the Ignore the product for indexation option to Yes

When changing this value, a full reindex must be run (manually or using the CLI).

Manage the synonyms in your search results

The extension takes into account the synonyms in the search.

Create groups of synonyms

You can create new groups of synonyms from:
MarketingSeo & SearchSearch Synonyms

For example, if you create the list of synonyms:

This means that when searching for "orange shoes", the extension will search:
orange shoes
orange footwear

If other synonyms are defined such as:

In that case, the extension will search:
red shoes
red footwear
orange shoes
orange footwear
yellow shoes
yellow footwear

All the corresponding products will then be displayed in the same list.

Create relevant search thanks to powerful configuration tools!

Enjoy a better Elasticsearch integration with Improved Search and convert searches into sales.

  • Lifetime upgrade
  • 6 Months priority support
  • 30 days money-back
  • Extensible source code
  • Free composer access
  • Marketplace approved
Want to know more?

Elasticsearch possibilities fully exploited

The module uses the power of Elasticsearch to centralize the storage of your data and ensure very high relevance and analyzes as powerful as scalable.

All you need to create a great search

Safe Reindex
The Improved Search module lets you index your content in a way that integrates perfectly with large product catalogs.

Fuzzy Query
Don’t leave potential customers with no answer, turn on the approximative search and always provide results.

Flexible Query Operator
Manage the behavior of the search queries: use the AND operator for combined results or OR for more flexible results.

Product Weight
From your back-office, control which products are highlighted in the search results by assigning weight to them.

Efficient preview

Test Analyzers
Define how the content of the attributes will be analyzed by creating custom analyzers and test them directly.

Test Search
Easily control how the search will work on your front-end with the Test Search tool.

Stay up to date about what's going on


Various Logs
Create log files for the Elasticsearch server status, the front-end requests, and the indexing process.

Helpful Notifications
Be notified quickly by email or in your Magento® back-office in the case where the server fails.

Need any help?

We offer a configuration service where our team can advise how to best configure our tool and how to improve it. Contact us for more details.

Check out all the possibilities you have with the Improved Search extension trying our demo, or contact us if you have any questions.

Freqently Asked Questions
Pre-sales informations

This extension works with Magento Community Edition and also Magento Enterprise Edition. To know if Improved Search is compatible with your Magento version, please check the Compatibility tab.

Refer to the below table to know which server is compatible with your version of Elasticsearch:



Elasticsearch server

Elasticsearch/elasticsearch library

Elasticsearch v5.0

v2.0 /

v2.1 /


v2.x v2.x
Elasticsearch v5.1.0
Elasticsearch v5.1.4 v2.x / v5.x v5.x
Elasticsearch v5.3
Elasticsearch v5.3.4
Elasticsearch v6.0 v2.x / v5.x / v6.x


Elasticsearch Core v2.0

v2.1 /

v2.2 /

v2.3 /


Elasticsearch Core v3.1

Included in the extension

Elasticsearch Core v4
v2.x / v5.x / v6.x / v7.x
License and domains

A license is valid for an unlimited period of time on one single Magento installation

  • If you're using more than one Magento installation, you will have to buy a separate license for each instance.
  • if you're running several domains on a same Magento installation, you will need only one license for all of them.
Although your license doesn’t have a limited period of validity, your support period does. By purchasing an extension, you’ll be granted a 6-month support period for free. Passed this period, you will have to pay for a new one (see FAQ: Extend your Support period)

You can pre-register your live domain to your license in advance.

Thanks to this option, you'll be able to get the extension ready to use on your domain before it goes live.

To pre-register your production domain: 

  1. Go to:
    mY accountLicenses & DOwnloads
  2. Click on  next to the extension you want your domain to pre-register on.
  3. Click on the link at the bottom of the page saying:
    Do you want to pre-register your domain in order to be ready to go live?
  4. Finally, enter your domain name and click on pre-register now .
Attention, this doesn't mean your license is activated. You'll still have to activate it on your new domain when the extension is installed. 

One license is valid for an unlimited period of time on one Magento installation only. However, it is possible to extend or transfer your license in 2 cases: 

  • If you would like to add your testing environments to your license. 
    In that case, it is possible to extend your license to an unlimited number of domains for free.
    For example: or
  • If you want to transfer your license to another live domain.
    In that case, the support period for your license must still be active.

To be able to use Improved Search on both your production and testing environments, follow the instructions below:

  1. Download Improved Search.
    (see FAQ: Extensions download)
  2. Install Improved Search on your environment.
    (see FAQ: Extensions installation)
  3. Activate the license.
    (see FAQ: Extensions activation from the backoffice or Extensions activation from the CLI)

Also, if you are managing a large amount of domains, please contact us so that we can automatically whitelist these domains.
Extension versioning and download

In order to download Improved Search, log into your Wyomind account:

    1. Go to:
      my accountLicenses & downloads 
    2. Click on the  icon next to Improved Search.

      A new window opens.

    3. Choose the version of Improved Search.
      You will be able to choose the most recent version of Improved Search (for both Magento 1 and Magento 2).
    4. Click on  .

Your download can start.

When purchasing an extension from, you benefit from a lifetime upgrade. You can at any time download the latest version of the extension directly from your account. 

To upgrade Improved Search, follow the steps below:

  1. Go to:
    my accountLicenses & Downloads
  2. Click on  next to Improved Search.
  3. Choose the latest version of Improved Search (for Magento 1 and Magento 2).
  4. Click on download .
  5. Install the new version of Improved Search to update your Magento admin. 

Prerequisites, Installation, Activation

To use Improved Search, you first need to have a recent version of Java installed and the Elasticsearch server running.

  1. Download the latest version of Elasticsearch from:
  2. Install it following:

To install Improved Search, copy the content of the unzipped folder and paste all files and directories in your Magento 2 root directory.

To install guzzlehttp libraries, run the following commands:

$ composer require guzzlehttp/guzzle
$ composer require guzzlehttp/ring
If the server is Nginx, replace the first line by the second in the Nginx configuration file:
location ~ (index|get|static|report|404|503)\.php${
location ~ (index|get|static|report|404|503|elastic)\.php${

Add the repository to your composer configuration with the below command:

composer config repositories.wyomind composer

Run the composer installer:

composer require wyomind/improvedsearch

If the server is Nginx, replace the first line by the second in the Nginx configuration file:
location ~ (index|get|static|report|404|503)\.php${  
location ~ (index|get|static|report|404|503|elastic)\.php${

In your Command Line Interface, execute:

bin/magento setup:upgrade --keep-generated

If you are using a production mode, also execute:

bin/magento setup:static-content:deploy
bin/magento setup:di:compile

In your Command Line Interface, execute:

bin/magento wyomind:license:activate \
Wyomind_ImprovedSearch,Wyomind_ElasticsearchCore \


bin/magento wyomind:license:activate \
ImprovedSearch,ElasticsearchCore \

As the Wyomind extensions regularly check if the Elasticsearch server is available, in your Magento 2 installation, you must have a scheduled task up and running from the server side targeting the cron.php file.

For more information on the configuration of cron tasks in Magento 2, you can check their documentation.


With Magento Cloud, the elastic.php cannot be copied to your website root and pub directories because the user does not have the necessary permissions to create these files.

To allow the file to be deployed, you must perform a setup: upgrade locally and manually add the elastic.php and pub/elastic.php files to the repository.

If the elastic.php call throws a 404 error, check that the file exists in the website root directory as well as in the pub directory.

If it is not the case, copy and paste the file from app/code/Wyomind/ElasticsearchCore/ and app/code/Wyomind/ElasticsearchCore/pub.

If you're getting the below error:
script_score: the script could not be loaded

You need to edit the Elasticsearch server configuration elasticsearch.yml file such as below: on
script.allowed_types: inline
script.allowed_contexts: search, update​

When using Improved Search with the UltimateSEO module from Mageplaza, this could cause an error 500.

For that, uncomment the below line from the elastic.php file available in Magento root directory: 

Magento® Compatibility

Magento® Open Source

(Magento® Community Edition)

  • 2.4.3
  • 2.4.2
  • 2.4.1
  • 2.4
  • 2.3.7
  • 2.3.6
  • 2.3.5
  • 2.3.4
  • 2.3.3
  • 2.3.2
  • 2.3.1
  • 2.3
  • 2.2.9
  • 2.2.8
  • 2.2.7
  • 2.2.6
  • 2.2.5
  • 2.2.4
  • 2.2.3
  • 2.2.2
  • 2.2.11
  • 2.2.10
  • 2.2.1
  • 2.2
  • 2.1.9
  • 2.1.8
  • 2.1.7
  • 2.1.6
  • 2.1.5
  • 2.1.4
  • 2.1.3
  • 2.1.2
  • 2.1.18
  • 2.1.17
  • 2.1.16
  • 2.1.15
  • 2.1.14
  • 2.1.13
  • 2.1.12
  • 2.1.11
  • 2.1.10
  • 2.1.1
  • 2.1
  • 2.0.9
  • 2.0.8
  • 2.0.7
  • 2.0.6
  • 2.0.5
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.18
  • 2.0.17
  • 2.0.16
  • 2.0.15
  • 2.0.14
  • 2.0.13
  • 2.0.12
  • 2.0.11
  • 2.0.10
  • 2.0.1
  • 2.0

Adobe® Commerce

(Magento® Enterprise Edition)

  • 2.4.3
  • 2.4.2
  • 2.4.1
  • 2.4
  • 2.3.7
  • 2.3.6
  • 2.3.5
  • 2.3.4
  • 2.3.3
  • 2.3.2
  • 2.3.1
  • 2.3
  • 2.2.9
  • 2.2.8
  • 2.2.7
  • 2.2.6
  • 2.2.5
  • 2.2.4
  • 2.2.3
  • 2.2.2
  • 2.2.11
  • 2.2.10
  • 2.2.1
  • 2.2
  • 2.1.9
  • 2.1.8
  • 2.1.7
  • 2.1.6
  • 2.1.5
  • 2.1.4
  • 2.1.3
  • 2.1.2
  • 2.1.18
  • 2.1.17
  • 2.1.16
  • 2.1.15
  • 2.1.14
  • 2.1.13
  • 2.1.12
  • 2.1.11
  • 2.1.10
  • 2.1.1
  • 2.1
  • 2.0.9
  • 2.0.8
  • 2.0.7
  • 2.0.6
  • 2.0.5
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.18
  • 2.0.17
  • 2.0.16
  • 2.0.15
  • 2.0.14
  • 2.0.13
  • 2.0.12
  • 2.0.11
  • 2.0.10
  • 2.0.1
  • 2.0
User's reviews
Log into your account to leave your review and get up to 3 months of free support.
Demo store
Work in progress...

Works great with

Advanced Layered Navigation

logo Advanced Layered Navigation
Starting at €305

Provide your customers with fully optimized and responsive layered navigation on your category and search results pages thanks to the Advanced Layered Navigation for Magento 2!

more details

Elasticsearch® Suite

logo Elasticsearch® Suite
Starting at €490

Make any search on your website much more relevant, quicker and user-friendly than the default Magento search tools with this complete suite of Elasticsearch extensions.

more details

Enhanced Autocomplete

logo Enhanced Autocomplete
Starting at €180

Improve the default Magento search results with Enhanced Autocomplete. Let your visitors enjoy a user-friendly autocomplete and display relevant results on products, CMS pages, categories as well as search suggestions.

more details

Multifaceted Autocomplete

logo Multifaceted Autocomplete
Starting at €305

Improve your search results with a multi-faceted autocomplete including filterable attributes, products sorting, and many display options available for Magento 2.

more details

Stay tuned and get a coupon code of 10% off any purchase while creating your account!

Subscribe now for updates, promotions and products launch twice a month at most.

Please indicate a valid email