4

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.

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.

  • Hi @mshakeel, Bingo module is not free, Can you please guide on how to install ElasticSearch. I'm on Magento 2.2.4 – Tajveez Rehman Mar 11 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 at 7:41
5

Yes, you can.

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

  • 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 '17 at 10:33
  • @FreshHaze yes, it is full doc – Kyrylo Romantsov Oct 6 '17 at 10:34
  • i've edited my comment – FreshHaze Oct 6 '17 at 10:35
  • @FreshHaze yes, it is powerful extension and it will cover all your needs about elastisearch – Kyrylo Romantsov Oct 6 '17 at 10:37
  • @FreshHaze no problem, you are welcome – Kyrylo Romantsov Oct 6 '17 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.

  • 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 '17 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 '17 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 '17 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 '17 at 9:00
  • You are welcome – MGento Oct 11 '17 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

0

Also Mirasvit already have extension for both most popular search engines Sphinx Search Ultimate and Elastic Search Ultimate

0

Please check the latest Magento 2 release. Magento2.3 includes Elastic Search by default.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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