Evolution of Mirasvit search extensions
Our team has been developing different search extensions for Magento since 2008. The first extensions were developed as custom solutions for our Magento customers who had suffered from different search issues in their stores. Those solutions used the Sphinx search engine. It was our primary engine and we recommended it to all our customers.
Since then, we have been constantly improving our extensions. In 2012, we released the first version of Sphinx Search Ultimate which could be installed on any Magento store. That version was published on Magento Connect and quickly earned the reputation of one of the highest-rated extensions for Magento 1. Moreover, we received much positive feedback from our customers.
As the years have gone by, though, much in this industry has changed. In 2015 it became clear to us that Magento 2, with its huge potential, would soon be released. Thus, without delay, we created the Magento 2 version of the Sphinx Search Ultimate. More than 5000 stores from all over the world have been using it for their customers as the main search tool.
Since then, we have never stopped improving, as we have kept on researching in the field of online stores search. We experimented with Sphinx, Solr, and Elasticsearch engines, trying to find the best solution for our clients. Finally, we made up our mind to give our customers the option to choose for themselves what engine better fits their stores: Sphinx or Elastic.
Thus, at the end of 2017, we released a new extension that uses different search engines and has own unique abilities. This extension is Elastic Search Ultimate for Magento 2. As you have probably surmised from its name, the extension is built around Elasticsearch engine, which has recently become very popular. Our customers understood its advantages and the possibilities the extension brings to the table.
So, what is the difference?
The Sphinx Search Ultimate and Elastic Search Ultimate extensions serve a very similar functionality. As you can see in the table below, they contain nearly identical submodules. In addition, the table represents other Mirasvit search extensions, lighter versions of our Sphinx Search Ultimate.
The main and only difference between Sphinx Search Ultimate and Elastic Search Ultimate is the usage of different search engines: Sphinx engine and Elasticsearch engine. These engines are connected to our extensions via submodules mirasvit/module-sphinx and mirasvit/module-elastic respectively.
Other submodules are the same and perform the following functions:
- mirasvit/module-core is a common module for all of our extensions
- mirasvit/module-autocomplete adds an autocomplete function to search box (instant search)
- mirasvit/module-misspell provides a search spell correction and fallback search
- mirasvit/module-search is a core of search extension. It performs the primary processing (preprocess) of search requests, synonyms, stop words, long-tails and search indexes management
- mirasvit/module-mysql adds an essential improved search function on the basis of MySQL
- mirasvit/module-search-report adds search reports (search terms, search engagement, popularity, etc) to the admin panel
- mirasvit/module-search-landing adds landing pages on the search results basis
Both extensions have the same high speed of search (on average, less than 0.1 sec per search request to either the Sphinx engine or Elasticsearch engine at 100K products). Also, they both have highly relevant search results (i.e. high quality of the search).
So, before you ask, "which extension is better for my store?" - you need to answer another question: which search engine best fits your store’s needs?
We invite you to consider the following points:
Elasticsearch engine allows you to do aggregation queries in search indexes. Thus, our extension can calculate a number of products by different attribute options or price ranges. Also, it can be very powerful if we want to filter products by their attributes.
That is why the Elasticsearch engine not only improves the search results but also allows you to highly speed up the generation time of layered navigation block and lists of products filtered by some attributes. If you have a large catalog (more than 50K products), this advantage could be significant for your store.
Sphinx search engine does not allow you to do aggregation queries (or, at least, we don’t know a way to make it work with Magento 2). However, it can also be an advantage for some stores - search indexes are much smaller without aggregation, reindexing of search runs faster and consumes fewer server resources.
Additional software and memory consumption
Sphinx search engine is written using pure C++. It’s quite easy to install. It does not require any additional heavy libraries and does not consume much memory.
Elasticsearch engine is written in Java. So to run it, you need to have a Java runtime environment installed on your server. From our experience, the Elasticsearch engine consumes more RAM memory than the Sphinx engine. And this may be the key factor for stores, hosted on low-cost servers. However, if your store has a powerful server or even multiple servers, you will not have any issues there.
Ability to grow and scale
Sphinx search engine can be installed either on the same server with your store or on a separate server. In 99% of cases, one server is more than enough.
However, one server may not be able to handle the load if your store has a huge amount of traffic or an enormous database. Then, the best solution is to build a cluster. As far as we know, it is very hard to do when using the Sphinx engine.
On the other hand, the Elasticsearch engine makes cluster creating pretty easy. All you need to do is just connect additional servers to your primary server. After a rather simple configuration, you will have a very reliable cluster.
Again, let us emphasize, you may need a cluster only if you have a huge amount of traffic or a huge number of products in your database (for example, a few million).
Both Sphinx Search Ultimate and Elastic Search Ultimate for Magento 2 have a high speed of search and great quality of search results. The main difference between them is the search engine used. That is why it is greatly important that you choose the engine that best fits your store requirements.
Sphinx search engine does not require a Java runtime environment installation and consumes fewer server resources.
Elasticsearch engine allows us to improve the layered navigation speed in the Magento catalog and has very a high scalability potential.