Unlike my other technical posts this is my personal story about getting a job abroad(Europe) from Bangalore without Masters degree. Locked up at home(corona days) I felt like sharing a blog about my journey to Europe as a three years experienced software engineer. After a lot of procrastination, here it is.

It is a software engineer’s dream to work in some foreign country, experience different culture and to travel around. I always had a plan to do my Maters degree in USA(and for most of the Computer Science engineers this is a default plan). I started my GRE course in…

Pic : Shutterstock

In this post let us try to build a basic search functionality required for an e-commerce site. I am using Elasticsearch as a search engine here. To learn the basics of search engine you can go through my other post .

Lets’ get started.

The first thing required to build a search solution is to prepare the data required for search. I am taking minimum number of fields, but that are commonly used for search in all the e-commerce sites. Here is the books data I will be using in this post.

Books json data.

The settings and mappings determine…


GraphQL is a query language for your API. It gives the client a flexibility to fetch only the data it needs.

Imagine, your backend behaves like a database and you can query the backend the way you need. Thats exactly what GraphQL offers you, a way to fetch data flexibly from the backend. Just like you define a schema in the database you need to define the schema in the backend and it’s immediately available for the client (for example the front-end app) to query. The data source, the place where you fetch the data is managed by the backend…

Most of the programmers use terminal for running some or the other commands in their daily job. Some of them hate it and some of them cannot live without it. I love using the unix terminal for most of my jobs. Right from copying files to executing the program.

My personal experience with using terminal for running most of my jobs is that it has helped me improve my productivity and get things done faster. Though you might be skeptical initially, using terminal helps you when you master it.

For those who are interested in using terminal and mastering it…

Elasticsearch is one of the best search engine which helps to setup a search functionality in no time.
The building blocks of any searchengine are tokenizers, token-filters and analyzers. It’s the way the data is processed and stored by the search engine so that it can easily look up. Let’s look at how the tokenizers, analyzers and token filters work and how they can be combined together for building a powerful searchengine using Elasticsearch.


Tokenization is a process of breaking the strings into sections of strings or terms called tokens based on a certain rule.

Whitespace tokenizer :

This tokenizer…

Note : Implementation of the same using Java is available here on github. Check it out .

Let’s try to build a simple spell corrector using elasticsearch.

It is a very common behaviour for users to make typos, while they are searching in the web applications. If your web application implements search, then to enhance the user experience, the application must detect the typos during search and it should try to correct or suggest(like Google’s Did You mean feature) the correct words. So, how can you achieve this? Elasticsearch’s term_suggester to the rescue.

Let’s see how term_suggester solves our problem…

What is Map-reduce ?

Map-reduce is a programming model that helps to do operations on big data in parallel to achieve faster results. To understand the concept of map-reduce go through this article which has a nice explanation for beginners.

MongoDB supports map-reduce to operate on huge data sets to get the desired results in much faster way. Map reduce has two main functions which is a map function which groups all the data based on the key value (go through the article mentioned above to understand what is key.) and a reduce function which performs operation on the mapped…

I was using Elasticsearch and there was this specific problem I encountered in one of the applications I was working on. So, the problem was, there are numerous words in English that are two different words and can appear as single word in some context.

Example: New York can appear as newyork or new york. Suppose you have dataset which contains newyork (without space) and when you search for new york(with space) , you will end up not getting any results for the search you made.

In order to solve this problem we can make use of Elasticsearch tokenizers and…

Mallikarjuna J S

Search Engineer at Shutterstock.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store