Update – October 2015

Unfortunately, non of the modules we tested in 2013 was able to meet all of our requirements. Therefore, we decided to develop our own Solr module for Magento, IntegerNet_Solr, which has been released in 2015.

More about IntegerNet_Solr

Three modules in comparison

Solr is an alternative search functionality that can be used for free. The Magento Enterprise Edition already provides an interface to Solr, although the Community Edition not yet. In comparison to the standard search of Magento, Solr differeciates itself through a significantly higher performance. The library also offers additional features such as spelling correction or a faceted search which is very useful for example, for filter search.

For the Magento Community Edition are, to my knowledge, three modules available: (as of 2013)

  • Magentix_Solr by Matthieu Vion (free)
  • SolrgentoMagento Solr Bridge Hau Danh ( € 450)

We have tested all three extensions.

The requirement was to have the Solr module installed. Usually this runs as a servlet on a Tomcat Application Server. The complete installation on a Windows test environment is covered step by step in the article “E -commerce Enterprise Goes ” by Tobias Zander from the (almost) current PHP magazine issue 2.2013. It is important that you dont have the latest Solr extension of Magentix installed, but the version 3.6.x. The other two modules need the version 4.0.x.

Magentix_Solr

Magentix_Solr is a plain open source product that is free and freely available.

After performing the installation you still need to copy the enclosed file schema.xml (under “/app/code/local/Magentix/Solr/etc/schema.xml”) in the “conf” directory of the Solr instance.

The configuration in Magento is relatively clear:
Magentix-Solr-Config

After the configuration is done, the search index can be rebuilt under system -> manage indexes. From now on all search results should directly come from Solr and not from the Magento database.

Advantages

The extension is easy to configure and to set up, as long as Solr is running correctly. The core functionality (of this module) is that the storage technology of the search index is changed – Solr is being used, instead of MySql database. This is why the module is compatible with most of the changes of the search functionality or search results because the output is not modified. Consequently, the search performance has increased significantly with little effort.

Disadvantages

The biggest drawback is that none of the advanced features are used, such as spell checking, search suggestions or additional filters. Therefore the functionality is being reduced on a pure performance optimization.

Solrgento

Solrgento, by the German developer Damian Luszczymak, was first presented at the conference Meet Magento # 3.2010 and has been developed further ever since. This overwrites the search index of Magento, insofar that the product data will now be present in the Solr-Index and not in the database, the update of the search index takes place automatically when there are changes in the product data. A further index is available for CMS pages, its content can also be searched.

The installation is as easy as with Magentix_Solr: A Solr configuration is provided, which must be copied to the appropriate directory on the Solr server and works “out of the box”. The configuration of the module is a bit more complex, but self-explanatory:
Solrgento Konfiguration

Subsequently, the indexes needs to be updated. Adjustments to the template will not be made by the module – the display is just like the default search of Magento, only the selection of search results is performed with the help of Solr. Only the navigation filter is going to be replaced in order to be able to use the new features.

Advantages

The module has overall pretty good code quality and holds on to the Magento standard. Thereby an upgrading is an (almost always necessary) after a certain training.

In comparison to the standard search functionality, this module provides some additional functions such as fuzzy search, the different weighting of attributes or layered navigation. A feature that none of the other modules has is the Browse Content Pages (CMS).

Disadvantages

Unfortunately, this module doesn’t use all capabilities of Solr. We are missing, in particular the alternative search suggestions (“Did you mean … ?”). The price of the extension is relatively high, but justified as a whole. An online demo would be nice to get before buying the extension (and especially the installation, since a free, encrypted demo version is offered) just to have a view of the frontend functionality.

SolrBridge

SolrBridge was developed by the Vietnamese Solr specialists Danh Hau. Versions for XCart, Prestashop and xt:Commerce are according to his statement still in development. A good overview of the functionality is offered in the online demo. Technically SolrBridge is working with a completely private module that does not touch the default indexers of Magento.

SolrBridge delivers a full Solr configuration. The installation and configuration in Magento is not entirely intuitive, but quite feasible with the supplied documentation, provided by a running Solr server. The following screenshot shows an excerpt from the extensive configuration:

SolrBridge Konfiguration

The index is managed from its own page with AJAX functionality:
SolrBridge Indexing

Advantages

SolrBridge offers among the three tested modules the widest range of features, including a correction function, complete search and filter functionality with multiple filters per attribute.
After typing the first few letters in the search field you can see the striking search preview. The latest version also includes the preview of the category pages on Solr, but we could not test it.

Disadvantages

The biggest disadvantage of SolrBridge is the obsolete code quality and therefore the code has a moderate expansion posibility. For our customer design-bestseller.de , we used SolrBridge and more concrete the extended search preview – the preview functionality, where the deciding feature was already available. Unfortunately it is mostly programmed in JavaScript and therefore the adjustment would be unnecessarily complicated due to the missing template engine. The decision for a own indexing functionality was not the best one since all changes in the product data are being saved throughout Observer – unfortunately, this doesnt work when importing many product and therefore it needs to be improved by hand. One can clearly notice that the developer Solr expert is not necessarily an experienced Magento developer.

Conclusion

The three Solr modules for Magento Community Edition provide in part useful, although no perfect solutions. Each of these are, however, better than the standard search offered by Magento. If you want to use one of these modules, you should be prepared to continue to work yourself into Solr and in the module itself, although not later than the first small adjustments. This is worth, because one can comes after a relatively short time to good results.

At the point of time when I wrote this article, I probably would have chosen Solrgento, since it has better code quality compared to SolrBridge and, therefore, extending and adapting this module is much easier. With regard to our requirements to functions and code quality, we at integer_net decided to develop our own Solr module for Magento. Our aim is to avoid the downsides of other modules and combine all of their upsides instead. On our website you can find further information about IntegerNet_Solr, our Solr module for Magento.

More about IntegerNet_Solr

Andreas von Studnitz

Author: Andreas von Studnitz

Andreas von Studnitz is a Magento developer and one of the Managing Directors at integer_net. His main areas of interest are backend development, Magento consulting and giving developer trainings. He is a Magento 2 Certified Professional Developer Plus and holds several other Magento certifications for both Magento 1 and Magento 2. Andreas was selected as a Magento Master in 2019 and 2020.

More Information · Twitter · GitHub · LinkedIn