• Post category:StudyBullet-16
  • Reading time:8 mins read


ElasticSearch: from basics to advanced search system, recommendation module, php/python/java integration at real example

What you will learn

ElasticSearch basic conceptions

Build advanced search systems using ElasticSearch

Create recommendation systems using ElasticSearch

Using php, python and Java libraries for integration with ElasticSearch

ElasticSearch at production: how to set up a HA cluster

ElasticSearch at production: how to index millions of documents in the most efficient way and zero downtime

Building Microservices

Programming Design patterns: builder pattern, filter pattern

REST API at practice

Docker basics

Description

Everybody knows ElasticSearch as a popular full-text search engine or as part of ELK but I am going to show you ElasticSearch from the side you have never known before. I want to show you that with ElasticSearch you can build very advanced search engines or even recommendation modules that can be much more effective and together with that, much more simpler than similar systems built on top of machine learning technologies. I want to show the real geo power of ElasticSearch for building advanced search filters and aggregations.

This course is built in such a way it would be useful both: for complete beginners and for people who are working with ElasticSearch but would like to extend their practice knowledge. It would be especially useful for those who are going to build some recommendation systems or advanced search mechanisms in the near future.

The course consists of 5 modules. First module is aimed for beginners and can be skipped by people who are already working with ElasticSearch. Here I will tell you about basics: how to install and configure the environment using Docker, how data at ElasticSearch are organized, why mapping is so important and what all that mess around tokenizers and analyzers means.

In the second section I will show how to build an advanced search system step by step on a real example of a simplified booking com version. We will touch the topics about ES geopower here.


Get Instant Notification of New Courses on our Telegram channel.


Next course section is devoted to the recommendation module. Here we will speak about recommendation systems in general – about pros and cons of today’s methods. And again together we will build a real system using ElasticSearch. We will create a recommendation mechanism for virtual example of cleaning houses’ marketplace.

In the fourth section I will show real examples using php, python and Java libraries for integration with ElasticSearch. And again we will create real microservice applying best programming practices and interesting design patterns like builder pattern or filter pattern. I will touch here also the question of debugging the possible problems.

The fifth and the last part is about using ElasticSearch for production. Here I will share with you my knowledge on how to set up a highly available cluster, how to calculate shard size and storage requirements, how to index millions of documents in the most efficient way and even how to preserve zero downtime at reindexing

English
language

Content

Introduction

Introduction
ESSENTIAL NOTICE: how to work with Postman
ESSENTIAL NOTICE – ElasticSearch versions

ElasticSearch Basics

Lab environment: Docker – overview
Lab environment: Install Docker at Linux
Lab environment: Install Docker Windows
Lab environment: Install Docker Mac OS
Lab environment: Run ElasticSearch using Docker
ElasticSearch Basics: theory
ElasticSearch Basics: practice
DSL queries and mapping: part 1
DSL queries and mapping: part 2
Analyzers
DSL combined queries

Advanced search system

Problem definition and requirements
Data modeling
Mapping
Basic search query
Nested query and aggregation
Geo power

Recommendation system

Theory and task definition
Mapping and test data
Constant score and Function Score
ElasticSearch solution

ElasticSearch and programming languages

Microservice: task definition and architecture

PHP + Symfony + ElasticSearch

Update notes
Local environment
Front Controller and API documentation
Search criteria DTO object
ElasticSearch ONGR bundle and model data layer
Prepare test data, indexer command
Search service and Query builder

Python + Flask + ElasticSearch

Fixes for MAC
Local environment
Front Controller and API documentation
Search criteria DTO object
Data layer and index command using elasticseach dsl python package
Search service and Query builder

Java + Spring Boot + ElasticSearch

ESSENTIAL NOTICE at building docker application image at first time
Local environment
Front Controller and API documentation
Search criteria DTO object
Data layer and indexing of test data
Search service and Query builder

ElasticSearch at production

Inside a cluster
ElasticSearch – shards and performance
Indexing secretes