- June, 2020
- Share It
ElasticSearch is the most popular search engine in the world and the number of users is increasing every day. It is popular because it can significantly improve the performance of your application, especially if you work with a large amount of data. In this blog post, I’ll make an introduction about ElasticSearch and more information about this valuable tool will come in an upcoming period.
ElasticSearch and different types of data
In general, we can categorize most data in our customers’ use cases as one of the following:
- (relatively) static data: a large (or small) dataset that may grow or change slowly, like a catalog or inventory of items;
- time series data: event data associated with a moment in time that typically grows rapidly, like log files or metrics.
ElasticSearch works great for both types of data.
It has a great full text search, which can be applied very flexibly, including synonyms, fuzzy logic, misspelled words, etc. Analyzers allow efficient use in a variety of languages.
A good understanding of how ElasticSearch works under the hood, and how full text search functions, can significantly influence you to apply various techniques and optimize your applications. For example, you can apply ElasticSearch to an existing infrastructure by extracting only the data you need to search on the primary database system, and implementing synchronization with Elastic using the Logstash tool, or by writing your own code.
Additionally, it is well known that ElasticSearch has the ability to quite improve the performance of your application. Here are few benefits provided by ElasticSearch;
- Query execution and aggregation speed in ElasticSearch is far better compared to traditional database systems;
- The search is very flexible and can be customized according to the needs of the application;
- Very often, the execution speed is not the only parameter that is important to us. When querying data, we are interested in the most relevant documents and how improve the precision and ranking. Sometimes it is important to boost certain terms during the search.
ElasticSearch allows all this, and much more.
To be continued…
I will try to explain what is going on behind the scenes. It is important to understand well in order to make the right decisions.
How and where the ElasticSearch analyzes and indexes data and documents? How scoring algorithm works, and how full text search works? Why and how important proper data mapping is. When and why use filters, and how to deal with cached data?
How to deal with “misspelled words” and fuzziness in our queries? When and how to write custom analyzers and how to use them?
What are the main causes of poor search performance and how to overcome them in the best way? In addition, how does it all work in a distributed environment?
These are just some of the issues and topics we will address in the following blogs. Useful tips and recommendations can facilitate learning but also the using of ElasticSearch in development and production environments. Investing time in exploring the possibilities of ElasticSearch and using them properly will pay off very quickly.
Author: Budimir Bogićević, Senior Software Engineer at enjoy.ing