Highlighting, Sorting, and Paginating Search Results in Elasticsearch 7.13

3 hours
  • 3 Learning Objectives

About this Hands-on Lab

When implementing search into applications, there are common user experience features that most people have come to expect nowadays. Search term highlighting, sorting, and pagination are all possible within the Elasticsearch Query DSL. In this hands-on lab, you will get to implement highlighting, sorting, and pagination within search queries.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Craft a Search Query for the Word “life” on the shakespeare Dataset with Pagination, Highlighting, and Sorting

From the Kibana console, craft a search query on the shakespeare dataset that meets all of the following requirements:

  • Matches all documents from the shakespeare dataset where some form of the word "life" appears in the text_entry field.
  • Paginates the search results with 25 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <em> and </em> tags to emphasize the text.
  • Sorts the results by relevancy score in descending order.
Craft a Search Query for the Word “death” on the shakespeare Dataset with Pagination, Highlighting, and Sorting

From the Kibana console, craft a search query on the shakespeare dataset that meets all of the following requirements:

  • Matches all documents from the shakespeare dataset where some form of the word "death" appears in the text_entry field.
  • Paginates the search results with 25 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <b> and </b> tags to bold the text.
  • Sorts the results first by play_name.keyword then speaker.keyword in ascending order, followed by relevancy score in descending order.
Craft a Search Query for the Part of “THESEUS” and the Words “life” or “death” on the shakespeare Dataset with Pagination, Highlighting, and Sorting

From the Kibana console, craft a search query on the shakespeare dataset that meets all of the following requirements:

  • Matches all documents from the shakespeare dataset where the speaker.keyword is "THESEUS" and some form of the word "death" or "life" appears in the text_entry field.
  • Paginates the search results with 10 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <b> and </b> tags and the HTML <mark> and </mark> tags to both bold and highlight the text.
  • Sorts the results by line_id in ascending order.

Additional Resources

Logging In to the Elastic Environment

  1. Open a new browser tab and navigate to the public IP address of the es1 node provided on the lab page (e.g., http://public_ip).
  2. Log in using the username elastic and password elastic_acg.

Lab Scenario

You work as a research librarian for a local university and are aiding a literary student studying life and death themes in the works of Shakespeare. For this, the student is trying to create a small website that searches the complete works of Shakespeare from a backend Elasticsearch instance and presents the results in a user-friendly way. The student has requested your help in supplying the following sample queries that implement user-friendly search results with pagination, search term highlighting, and sorting:

Query 1:

  • Matches all documents from the shakespeare dataset where some form of the word "life" appears in the text_entry field.
  • Paginates the search results with 25 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <em> and </em> tags to emphasize the text.
  • Sorts the results by relevancy score in descending order.

Query 2:

  • Matches all documents from the shakespeare dataset where some form of the word "death" appears in the text_entry field.
  • Paginates the search results with 25 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <b> and </b> tags to bold the text.
  • Sorts the results first by play_name.keyword then speaker.keyword in ascending order followed by relevancy score in descending order.

Query 3:

  • Matches all documents from the shakespeare dataset where the speaker.keyword is "THESEUS" and some form of the word "death" or "life" appears in the text_entry field.
  • Paginates the search results with 10 results per page and displays the first page of results.
  • Highlights the matched term(s) with the HTML <b> and </b> tags and the HTML <mark> and </mark> tags to both bold and highlight the text.
  • Sorts the results by line_id in descending order.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?