Book Image

Mastering Elasticsearch 5.x - Third Edition

By : Bharvi Dixit
Book Image

Mastering Elasticsearch 5.x - Third Edition

By: Bharvi Dixit

Overview of this book

Elasticsearch is a modern, fast, distributed, scalable, fault tolerant, and open source search and analytics engine. Elasticsearch leverages the capabilities of Apache Lucene, and provides a new level of control over how you can index and search even huge sets of data. This book will give you a brief recap of the basics and also introduce you to the new features of Elasticsearch 5. We will guide you through the intermediate and advanced functionalities of Elasticsearch, such as querying, indexing, searching, and modifying data. We’ll also explore advanced concepts, including aggregation, index control, sharding, replication, and clustering. We’ll show you the modules of monitoring and administration available in Elasticsearch, and will also cover backup and recovery. You will get an understanding of how you can scale your Elasticsearch cluster to contextualize it and improve its performance. We’ll also show you how you can create your own analysis plugin in Elasticsearch. By the end of the book, you will have all the knowledge necessary to master Elasticsearch and put it to efficient use.
Table of Contents (20 chapters)
Mastering Elasticsearch 5.x - Third Edition
About the Author
About the Reviewer
Customer Feedback

Elasticsearch scripting

One of the great things in Elasticsearch is its scripting capabilities. In those scenarios where the API is just not enough, Elasticsearch allows you to write your own custom logic in a script. You can use this script for calculating the score, text-based scoring, data filtering, data analysis, and doing partial updates to the documents. Although scripting can be slow in some cases, such as calculating the score for each document, we think that this part of Elasticsearch is important. Scripting is supported in many APIs including search, sorting, aggregations, and document updates.

The syntax

The script follows the following pattern whenever it is used in any Elasticsearch API:

"script": { 
  "lang":   "...", 
  "inline" | "id" | "file": "...", 
  "params": { ... } 

Let us understand the script parameters:

  • The lang parameter is the language the script is written in, which defaults to painless.

  • The inline | id | file parameter is the script itself, which may be specified...