5

I'm learning how to config and use Elasticsearch as search engine for a "test project" which we will develop soon.

I have a few questions about how to integrate these two technologies.

  • Is it possible to integrate elasticsearch with magento 2 CE? or I need a custom module for this?

  • Otherwise, how can I populate an elasticsearch cluster with, for example, the catalog of my Magento 2 CE shop? is it possible?

I know that it sounds a little bit confusing but I'm new to elasticsearch and I'm trying to integrate it in my platform.

If some of you had a previous experience with Magento 2 and ES can please tell me which are the common problems during integration?

Thanks in advance.

EDIT 05/12/2018

Now Magento 2.3 has ElasticSearch integration out of the box in Community Edition.

4 Answers 4

5

Magento 2 Open Source (CE) does not provide integration with elasticsearch by default. We have following options:

Issues we can face while creating custom extension:

  • Handling with Layered navigation
  • Updating Index with delta changes on right schedules

Hope you will find these extensions helpful to go for your elasticsearch feature.

2
  • Hi @mshakeel, Bingo module is not free, Can you please guide on how to install ElasticSearch. I'm on Magento 2.2.4 Mar 11, 2019 at 7:38
  • 1
    @TajveezRehman Bingo was initially free. You can now use Magento 2.3 which has built-in elastic search module. I hope details of installation will also be in Magento docs.
    – mshakeel
    Mar 11, 2019 at 7:41
6

Yes, you can.

Here is step-by-step manual: https://github.com/Smile-SA/elasticsuite/wiki

5
  • This is for let magento 2 use Elasticsearch query in database, right? There is a solution for populate an elasticsearch cluster with magento 2 product catalog? so we have a collection of products directly in elasticsearch and can be used or retrieved by an Angular application (example)
    – FreshHaze
    Oct 6, 2017 at 10:33
  • @FreshHaze yes, it is full doc Oct 6, 2017 at 10:34
  • i've edited my comment
    – FreshHaze
    Oct 6, 2017 at 10:35
  • @FreshHaze yes, it is powerful extension and it will cover all your needs about elastisearch Oct 6, 2017 at 10:37
  • @FreshHaze no problem, you are welcome Oct 6, 2017 at 10:38
2

Yes, we can integrate elasticsearch with Magento2 CE and you need to create a custom module for this.

To make it work, we need to do the following steps.

1) Install and start the elasticsearch server program, in your magento server.

2) Use a client program, to communicate between the elasticsearch server and your programming language, which is PHP.

Fortunately, Elasticsearch provides a client library in core PHP, which are a bunch of core PHP classes. By using these library, we can communicate with the elasticsearch server. You can find the link here

To make the elasticsearch work with Magento-2, either we need to transform this core PHP elasticsearch libraries in to Magento-2 structure or we need to use third party Magento-2 extensions if any available.

For the first method, make a custom module in Magento-2 and transform the elasticsearch core PHP classes in to helper files. Then by using the helpers and controllers, you can develop a real Magento-2 elasticsearch extension.

The possible problem, that could come, may be dealing with clusters, but that's my personal experience. You may find it easy.

5
  • Thanks you for your answer! Do you know if i create a custom module parsing the PHP classes into a magento-helper after this can i access to the ES clusters anyway? via angular for example? cause the main problem is retrieve magento data directly from an endpoint wich is OUTSIDE the magento installation. So example: Request->Angular call ES endpoint -> elasticsearch was populated with magento 2 catalog -> return json with magento 2 catalog FROM ELASTICSEARCH
    – FreshHaze
    Oct 6, 2017 at 12:46
  • Yes, once you have created the custom module with transformed elasticsearch helpers in it, you can build the controllers to create index requests, to index your magento catalog data in to the elasticsearch and then you can access it using another controller may be.
    – MGento
    Oct 7, 2017 at 12:25
  • So its simple, first index catalog data. For example you can index all the product ids in to elasticsearch and using this ids, you can process all the catalog related requests. If you create a controller to invoke the data-index process, you can access this controller from the angular search and thus to dig in to elasticsearch data management.
    – MGento
    Oct 7, 2017 at 12:27
  • Thanks for you answer, it was so helpful for me, i've created a simple module and indexed all the products in elasticsearch indexes.
    – FreshHaze
    Oct 11, 2017 at 9:00
  • You are welcome
    – MGento
    Oct 11, 2017 at 10:18
0

By default Magento 2 Ce doesn not provide the elastic search feature, unfortunately you need to build from scratch. But as per I know there is one free awesome extension available for this, which you can find from below link,

https://github.com/Smile-SA/elasticsuite

Note : It is a free extension

5

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.