- 24 Nov , 2014
- 0 comments
- 1200 Views
Elasticsearch is marketed as the world’s most advanced end-to-end search and analytics platform made for crunching words to provide text result as per give query or for statistical analysis of a huge amount of text.
Specifically, Elasticsearch is built on top of Lucene, which is time tested, high performance, full text search engine written entirely in Java. While Lucene is good, it is difficult to use directly and Elasticsearch provides an intuitive and easy to use API which also makes it easy to scale across machines and datacenters. Also Elasticsearch API is interoperation with non Java / JVM languages.
Full text search has become a de-facto standard in all types of application. Applying text based indexes in databases makes them slow and it’s even impossible to maintain indexes on all such columns or attributes. While programmers use the patterns using which the problems are reduced but the speed of search and the indexing problems remain there, bogging down the database and thus application.
There are a myriad of use cases which are to be implemented specially so that better user interactions are possible.
Features to Enhance User Experience
Some of the interactions/features which can be implemented using Elasticsearch are listed below:
1. Full Text Search – Getting large number of products/orders/blogs as per the match of a specific phrase (say “grilled sandwich”) or an open phrase (say wooden toy) and returning with the best results.
2. Displaying the various topics or departments in where “wooden toys” appears.
3. Autocomplete a search box based on partially typed words based on previously issued searches.
4. Showing right phrases while taking account of spelling mistakes. Do you mean ‘wooden toys’ instead of ‘wooden tiys’.
5. Search for similar sounding words like ‘air fryer’
We know that search is very important whether it is a e-commerce portal or blog or a CRM, and Elasticsearch is a fantastic tool to find the information in a usable, scalable and distributed way.
Most Databases support full text search and similar capabilities but it is complex and takes a lot of database tuning. Still getting fast and scalable results is difficult. Elasticsearch is a gem with its easy to install, no indexes to make and almost zero administrative cost.