Evolution of Mirasvit search extensions
Our team has been developing different search extensions for Magento since 2008. First extensions were developed as custom solutions for our Magento customers who 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 many positive feedbacks from our customers.
But time passes by and everything changes. In 2015 it became clear to us, that Magento 2, with its huge potential, will be released soon. 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. We 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 options to choose themselves what engine fits better for 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 may understand from its name, the extension is built around Elasticsearch engine, which has recently become very popular. Our customers understood its advantages and possibilities the extension brings to the table.
So, what is the difference?
Sphinx Search Ultimate and Elastic Search Ultimate have very similar functionality. As you see from the table below they contain almost the same submodules. In addition, the table represents you other Mirasvit search extensions, lighter versions of our Sphinx Search Ultimate.
The main and the 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 our extensions
- mirasvit/module-autocomplete adds autocomplete function to search box (instant search)
- mirasvit/module-misspell provides 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 essentially 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 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 your store? - you need to answer another question: which search engine fits your store’s needs the most?
We invite you to consider the following points:
Elasticsearch engine allows doing aggregation queries to search indexes. Thus, our extension can calculate a number of products by different attribute options or price ranges. Also, it is very powerful if we would like to filter products by their attributes.
That is why the Elasticsearch engine not only improves the search results but also allows 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 do aggregation queries (or, at least, we don’t know a way to make it work with Magento 2). But 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 libs 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 then 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 a few 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 huge traffic or an enormous database. Then, the solution is to build a cluster. As far as we know, it is very hard to do using the Sphinx engine.
On the other hand, the Elasticsearch engine allows cluster creating pretty easy. All you need to do is just to connect additional servers to your primary server. After a quite simple configuration, you will have a very reliable cluster.
Again, let us emphasize, you may need a cluster only in case you have huge 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 essentially important to choose the engine that fits your store requirements the best.
Sphinx search engine does not require Java runtime environment installation and consumes less server resources.
Elasticsearch engine allows us to improve the layered navigation speed in the Magento catalog and has very a high scalability potential.