Elasticsearch: Advanced Search Engine for Your Online Marketplace

In this article, we want to share our experience of using Elasticsearch in the online marketplace. You will learn about main advantages of this search engine, its features, and use cases.

Let's start.

What Elasticsearch is

Elasticsearch is a scalable, RESTful search and analytics engine, that allows you to perform and combine different types of searches (structured, unstructured, geo, metric etc.) and quickly retrieve any type of data you need.

Its main benefits are:

Near real-time transparent and flexible search

Elasticsearch has a bunch of search parameters such as structured search, full-text search, multi-field search, proximity matching, partial matching, and aggregations. It also allows you to combine geolocation with full-text search, structured search, and analytics.

Possibility to extend it with powerful functionality

Elasticsearch provides you with the features in X-Pack such as security, alerting, monitoring, reporting, graph, and machine learning.

X-Pack easily integrates across the entire Elastic stack and is maintained by Elasticsearch engineers, so you don`t need to worry.

Different programming languages support

Elasticsearch builds and maintains clients in such programming languages as Java, Python,.Net, and Groovy. Moreover, it has a dedicated community that supports a lot of other languages.

Detailed documentation

Getting started with Elasticsearch is fairly straightforward. It has a very thorough and detailed documentation that covers each aspect of its usage and performance.

Advanced analytics

Elasticsearch allows running analytics over the employee directory. It provides the functionality called aggregations that allows you to extract any kind of data and generate analytics over it.

Aggregations

With aggregations you can calculate and summarize data about the current query, e.g. you can return data like “popular posts by hour” or “what the most popular interests of your employees are” and “what is the average age of employees who share a particular interest?”

What business Elasticsearch is good for

Elasticsearch is a great choice for any business that deals with data, documents, search, analytics, and especially for online marketplaces that need real-time data processing. Here are some companies that have chosen this search engine:

Uber

Taskrabbit

Kickstarter

Foursquare

Soundcloud

HotelTonight

Codecademy

These are just to name a few.

How we used Elasticsearch in online event planning marketplace

Meals Unite is an online marketplace that allows you to become a host and make new friends by sharing a meal and inviting guests from different cities and countries.

The main idea of the project is to evolve the food culture, enjoy each bite, and each minute of conversation in a relaxed and positive setting.

Of course, search on such marketplace should be intuitive and smooth, enabling users to easily find a meal event they want.

Let's see how Elasticsearch works in this project.

A user can search events in two different ways:

Map view

Events are displayed by automatically defining your location (with HTML5 geolocation) and sorting it according to the distance (nearest first)

List view

User manually types the location and sees the list of events there.

Users can sort the events by the following filters

By date

By price

By favorite events

By various event characteristics

Each of the event characteristics has possible values of a category. For example, categories are divided into breakfast, brunch, lunch, and dinner.

The point here is that with Elasticsearch these filters are created automatically from the database. It makes the search more advanced, without developers having to set each filter manually.

When there are no events for a certain category, this category is not displayed at all.

Selected filter

This component shows the filters applied to the current search.

These are only some of the filters we have used in this project. However, the abilities of ElasticSearch go far beyond.

Elasticsearch is a flexible and convenient search engine for real-time data fetching. It has a large functionality with customizable elements, so it will be suitable for almost any type and size of business. If you`d like to try out this powerful tool, we would be more than glad to help you.