We're proud to announce the availability of our elasticsearch integration as an alternative to the default and somewhat limited MySQL FULLTEXT search.
What is elasticsearch?
elasticsearch is a standalone Java-based service built on top of Apache Lucene™, providing accurate and fast results for searches against huge sets of data. It can be scaled nearly indefinitely and offers excellent redundancy by distributing the search on multiple instances ("shards") in the background. elasticsearch is used by many top sites to search and work with up to hundreds of millions of documents.
Comparison with MySQL FULLTEXT
MySQL's FULLTEXT index is a good thing to start with and does a decent job for small to medium sized communities. It suffers from a few weaknesses, including a minimum word length and a rather large stopword list. As soon as you have a few hundreds of thousands of posts, performance is increasingly degrading and the relevance of results starts to drop. Working with a large search index also causes a significant high CPU usage, quickly limiting the capability of the search on busy sites.
Compatibility with WoltLab and 3rd party products
The search engine interface was redesigned with Community Framework 2.1 and supports arbitrary search engines to perform the search in the background. Given this change, every WoltLab product as well as almost every 3rd party product using the search can automatically run on elasticsearch without any further action required.
elasticsearch is a standalone service and requires Java to be run, requiring at least a virtual or managed server to be run on. It is not available on usual hosting services. elasticsearch 1.4 or higher, the PHP-extension php_curl and Community Framework 2.1 or higher are required; Not available for Burning Board 4.0 or lower.
The elasticsearch plugin is available for USD 54.99 (EUR 49.99 with 19% German VAT) and can be obtained with new purchases as well as by extending an existing license.