How to Configure Elasticsearch in Magento 2

You are currently viewing How to Configure Elasticsearch in Magento 2
How to Configure Elasticsearch in Magento 2

The search engine of any eCommerce platform is arguably the essential part of the store. With an efficient search engine like Elasticsearch, customers can quickly locate everything they need on your platform. This boosts a positive customer experience and leads to an increase in sales.

What is Elasticsearch?

Elasticsearch is an open-source analytics and search engine. It is fast, efficient, and powerful enough to handle many searches at a time. It works by storing your data centrally and mapping them effectively. This enables it to locate and retrieve data efficiently and at high speed. It is even capable of full-text searches on an HTTPS interface.

Why use Elasticsearch in Magento 2?

If you want to boost the efficiency of your eCommerce store, you need a powerful search engine. It helps customers go around the store quickly and enables them to reach your products with ease. If you are an existing eCommerce store owner, you will understand that a laggy search engine would frustrate customers and reduce the number of products they open in your store. This will lead to the low conversion of the visitors to the site. However, with Elasticsearch, you get faster and more efficient searches.


This is the synchronization of data in Elasticsearch. It is used because data in Elasticsearch is always secondary. It works by rebuilding an index by using the stored data in the table of the index. In turn, it leads to the replacement of the old copy of the index. For Magento users, there are two different ways of creating the reindex. They are the full reindex and partial reindex. Partial reindex focuses only on the products that have been changed. Full reindex gives the developer freedom to trigger it manually via code.

Search Request

A search request is a string of name-value pairs that define the parameters of the search. It allows users to make custom searches of whatever they want on the eCommerce store. All they have to do is enter the keywords, and Elasticsearch will do the rest. The requests in Elasticsearch use different query types to achieve fast results. Some include the quick search container, the advanced search container, and the catalog view container.

Category View Page

A category view page allows you to sort the products in your store into groups. The feature will enable customers to filter the products they want to locate. Thanks to Elasticseach, Magento can quickly get the information of matching products to the query. Here, Magento sends the customer’s request to Elasticsearch. This is to find products with matching IDs. From the Elasticsearch results, Magento loads the products from the MySQL database. Then the products are displayed on the interface for the viewer.

Quick Search

Quick Search is the mechanism used in the category view page. It provides accurate and fast results because the data in Elasticsearch is not stored at the front end. Now, it can find products faster and more accurately. Once the product is found, it is loaded directly from the MySQL database. For instance, let us assume a product is named “Torchlight” on MySQL and is indexed as “Lamp” in Elasticsearch. If you type in “Torchlight” in the search box, you will not get any results. However, when you type “Lamp,” the result that pops up is the “Torchlight” and every other product indexed as Lamp in MySQL.

Advanced Search

In as much as there is a quick search feature, an advanced search feature is also necessary. This feature is similar to the quick search feature, but it comes with some added search options. Here, the customer can add more search details such as price, size, color, and more. It produces a more refined and well-detailed search result. It works perfectly for users that know the specific product they are looking for.


GraphQL is one of the APIs used in Magento. It gives access to external systems to fetch Magento data. It also lets users request what they want in a single query. It works on a similar principle of searching for products directly at the store. Here clients are also allowed to request a unique data specification of their own. Here, bandwidth is saved, and waterfall requests are reduced. Here, only the exact fields you need will bring results. The reduction in data transmitted helps to boost the performance of the site.

Search Suggestions

Search Suggestions helps users to find results better. It does not interfere with the leading search in any way. What it does is offer suggestions to the primary search of the user. It usually happens for a few reasons. One reason is as a result of a typographical error by the user. In this scenario, it displays the “Did you mean…” on the results page. It helps the user realize their mistake and show the correct product at the same time. In other scenarios, it happens when they are no results from the query. It then offers alternatives that are similar to the query and also available in the database.

Additional Search Features

This feature runs directly on MySQL and does not need Elasticsearch. However, it adds more efficiency to the search process. For instance, a customer can be redirected to a category page of bicycles after typing “bicycles” in the search bar. The catch here is that only products related to bikes will be displayed on the page. However, users can now also see popular search items on the interface. In addition, it gives them an idea of the products that are trending in the store. In another scenario, the user can add synonyms or search recommendations to their search options.

Vue Storefront

Vue Storefront is a frontend application that you can easily connect to Magento. This is because it uses Elasticsearch as a NoSQL database and because Magento indexes its entities in Elasticsearch. In turn, Vue Storefront can easily reach them without having to make requests from Magento.

Easy Steps to Configure Magento 2 Elasticsearch

Configuring Elasticsearch to work with Magento is relatively easy. First, however, you have to follow the steps mentioned below to get the best results. So first, have a look at the steps.

Configure your Search Options

For the first step, you have to open the store configuration under settings. Then open the catalog and expand its search section. Here you can edit the minimum and maximum query length to determine where the store activates Elasticsearch. In addition, you can set up the number of top search results to cache to store a faster response. You can also set up the indexation speed and the limit of the autocomplete.

Configure Magento Elasticsearch Connection

Here, you are to enter the Elasticsearch server hostname and port. The default here is the localhost. Next, enter a prefix for the Elasticsearch index and enable the Elasticsearch HTTP Authentication. The authentication suggests a username and password allow access to the Elasticsearch server on Magento 2. Finally, edit the server timeout and test the connection to verify your Magento 2 Elasticsearch configuration.

Configure Suggestions and Recommendations

This is the final step. Here, you turn on search suggestions and set up the number of requests and their results. Also, turn on search recommendations and set up the number of recommendations and their results. Then save your configuration.

Key Takeaways

So far, it is clear that Elasticsearch is a powerful tool that you need in your store. It is fast, efficient, and very reliable. However, the best part is that you can implement Elasticsearch with our full-stack web services. You can reach out to us, and our professionals will help you get it all done!

How to Configure Elasticsearch in Magento 2