Four-Project Series

Elasticsearch for a Search API you own this product

prerequisites
basics of Python functions, classes, file IO, iterations, and loops • interact with Elasticsearch through Kibana dev console • use Docker compose to launch Elasticsearch and Kibana
skills learned
create documents in Elasticsearch • write the mapping for indexes to support queries • improve queries to match the right sneakers • add aggregations, filters, and pagination to a query • boost specific searches • use a judgment list to tune results
Jettro Coenradie
4 weeks · 5-7 hours per week average · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Play the role of software engineer at Sneakers to the Max, an e-commerce company that sells sneakers and wants to sharpen its competitive edge. Your task is to improve the company’s search engine to provide better, quicker results to its customers and boost sneaker sales. Using Python and Elasticsearch, you’ll write code to import data into your search engine that enables frequent, regular updates. To improve search engine results, you’ll optimize the mappings of Elasticsearch indexes. You’ll create an API that provides search to the company’s website and mobile app. You’ll further enhance the customer experience—and the company’s bottom line—by boosting specific products and improving the relevance of search results. When you’re finished with this series of liveProjects, you’ll have used Elasticsearch to create a search engine that’s fast and effective while providing customers with an improved user experience.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

I found it to be a wonderful learning experience. The lessons I learned will definitely prove useful in my work environment.

Jean-Paul Malherbe, Team Lead on Back-end systems, IoT.nxt

here's what's included

Project 1 Create a Product Index

E-commerce company Sneakers to the Max wants to strengthen its bottom line with an improved search engine that provides better and quicker results to customers. As a software engineer, your task is to create a structure for importing data into the search engine. You’ll write a Python script to import sneaker data into Elasticsearch. Next, you’ll create an index for the sneakers and use aliases to keep the data available while importing a fresh catalog. To verify your import and gauge the quality of your data, you’ll create a Kibana dashboard. Using Elasticsearch Bulk, you’ll improve the indexing performance of the sneaker data you need. When you’re finished, you’ll have created a complete structure for your imports that enables frequent, regular updates without downtime.

Project 2 Optimize Mapping

You’re a software engineer for Sneakers to the Max, an e-commerce company that sells sneakers. Its CEO wants to improve the speed and quality of the company’s search engine in hopes of boosting sales. Your task is to optimize the mappings of the Elasticsearch index. You’ll use the Kibana developer console to analyze the current mapping and create a new custom analyzer. To improve search matches—and customer experience—you’ll use the Elasticsearch field mappings to support multiple uses of the same field. You’ll modify the mappings to help customers find the sneakers they’re looking for, even if their search terms are incomplete or contain typos. To further improve CX, you’ll add synonyms to the Elasticsearch configuration to handle searches that use different terms for the same concept.

Project 3 Improve Search Support

As a software engineer at Sneakers to the Max, it’s your job to create an API that the e-commerce company’s developers can use to improve search results. You’ll write Python code to create Elasticsearch queries that work best for zero, one, or multiple search terms. To enable the application to interact with the search service, you’ll implement a FastAPI endpoint. You’ll add query filters, including colors and price ranges, to narrow down the results, and you’ll add pagination for when the number of sneakers in the narrowed search results is too large to be displayed on one page. When you’re done, you’ll have created an API that empowers your developers to provide the best matches to customers’ searches and leads to increased sneaker sales.

Project 4 Boost Specific Results

Help Sneakers to the Max’s customers find the perfect sneakers! As a software engineer at the e-commerce company, your task is to improve its search engine—and hopefully sales—by fine-tuning the order of search results. You’ll adjust the index mapping to import data about sneaker release dates, popularity, and in-stock status. Then, you’ll write extensions to the Elasticsearch queries that boost recent and popular results, forcing out-of-stock sneakers lower. Finally, you’ll use everything you learned to return the most relevant sneakers using a judgment list provided by the product managers. When you’re finished, you’ll have the skills to enhance Elasticsearch queries, while Sneakers to the Max’s customers will easily find the perfect pair.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Elasticsearch for a Search API project for free

The provided resources are great. The linked book fragments in the help sections are really helpful.

Daniël Spee, Software and Search Engineer, Luminis

project author

Jettro Coenradie

Jettro Coenradie has worked in the search domain for more than 15 years, currently as a search relevance engineer and software architect at Luminis. He’s designed and implemented search solutions for some of the biggest e-commerce companies in the Netherlands and is a valued member of the international Search Relevance Tech community. He served as the technical editor for Manning’s Elasticsearch in Action, 1st edition, and has developed his own Elasticsearch curriculum. He’s shared his expertise in numerous blog posts and conference presentations, including at Devcon and JFall.

Prerequisites

These liveProjects are for intermediate-level Python developers who want to improve their basic Elasticsearch skillset. To begin these liveProjects you’ll need to be familiar with the following:

TOOLS
  • Basic Docker knowledge
  • Intermediate Python knowledge (min version 3.8.x), particularly the FastAPI and Requests libraries
  • Basic Elasticsearch
  • Basic Kibana
TECHNIQUES
  • Run Docker containers

you will learn

In this liveProject series, you’ll learn to use Elasticsearch to create a search engine that provides relevant search results and a positive customer experience.

  • Receive web requests with FastAPI
  • Provide FastAPI endpoints as a REST API
  • Configure importing content using Elasticsearch analyzers
  • Choose the query to match the right sneakers
  • Tune different boosting parameters to show relevant sneakers first

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.