Book Image

Mastering Elasticsearch 5.x - Third Edition

Book Image

Mastering Elasticsearch 5.x - Third Edition

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
Credits
About the Author
Acknowledgements
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Query validation and profiling


In this section, we are going to learn two important features related to queries. First, the query validation, which will help you in finding out if your queries, can be executed or is bugged. Second, getting the full execution time information of a query so that you can check out which component of your query is taking how much and eventually it will help you in diagnosis of your slow queries.

Validating expensive queries before execution

While writing a new query, it's better to be sure that the query you have formed has the correct syntax and does not have any other issues such as data type conflicts with respect to any field. Elasticsearch provides a dedicated _validate REST endpoint for validating the queries without executing them. Let's look at an example to see how to use this API.

First of all, let's create and index some sample documents inside it:

      curl -XPUT "http://localhost:9200/elasticsearch_books/books/_bulk?refresh" -d'  
{"index":{"_id"...