Beyond a simple search engine – power of Elasticsearch

Beyond a simple search engine – power of Elasticsearch


Désolé, cet article est seulement disponible en Anglais.

app-1

We’re proud that the number of apps created with our tools is growing fast. But with this success comes a challenge! And we like challenges!

Hundreds of apps, hundreds of pieces of content

With hundreds of mobile apps created, filled with vast number of digital content (magazines titles, business presentations and more), Aquafadas has become one of the top stores of documents. And it’s growing daily! As our clients add more and more files it becomes harder for them and their end users to find exactly what they need, quickly. In today’s fast-paced world, search replaces browsing when users seek what they need. Conclusion is simple: the more content our users add, the more important it is for them to have a state-of the-art search tool.

That’s why we’re in quest to deploy a powerful search solution. But why:

  • We aim to offer better products for our clients so they can attract more customers to their apps
  • We want to ensure that the end users can look for what they need fast and with accuracy
  • With powerful analytics comes marketing opportunity based on user searches data 

That’s how we discovered Elasticsearch. So what is it all about and how does it work? Our developers share their knowledge.

What is Elasticsearch?

Elasticsearch is a search engine created to solve big data issues. It’s been designed to be able to perform natural language search and analytics on a very wide range and volume of documents. It’s being used in a wide range of cases, from actual web-store product searching (with features detecting similar items), to performance metrics analysis (number of Purchases or Downloads per day, CPU (central processing unit), usage across servers etc). All of this to provide excellent Business intelligence.

Why is it so popular?

It is becoming popular because of it’s ease of use (for end users and developers). It’s built around the concept of scalability, which makes it easier to design a solution and increase the performance as needed by adding additional servers. It also comes with very reasonable default settings for it’s most common uses: natural text search (with relevance scoring), and efficient analysis queries. It has a very good open source ecosystem.

Why is it appealing from tech perspective?

It’s technically interesting because of wide range of reasons:

  • Real Time Processing capabilities: analysis and searches are performed on the scale of milliseconds suitable for web applications
  • High fault tolerance: it’s easy to replace or add servers, and to continue working when losing a single server
  • Generally good tooling for text analysis

Glossary of related tech solutions

Kibana: an User Interface (UI) and data discovery web application. It’s main focus is to allow for the visualisation of the data. (It is moving toward also becoming the UI for the management of a cluster in general).

Apache lucene: a free and open-source information retrieval software library, originally written in 100% pure Java.

Beats: allow for low level data collection and forwarding to ES. For instance the capture of avery http requests made one server served with surrounding information, or the passing of each new addition from a server log file to ES.

Logstash: an open source tool for collecting, parsing, and storing logs for future use. It allows for the handling and processing of different events.

XPack: a bundle of non-free plugins that can be added to each kibana, elasticsearch, beats and logstash instances.