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 (13 chapters)

Implementing your own auto-completion


Completion suggester does have limitations..!!

The completion suggester has been designed to be a powerful and easily implemented solution for autocompletion but it supports only prefix queries, as we have seen in the previous section. Most of the time, autocomplete needs only to work as a prefix query, for example, if I type elastic, then I expect elasticsearch as a suggestion, but not nonelastic.

There are some use cases when one wants to implement more general, partial word completion. The completion suggester fails to fulfill this requirement.

The second limitation of the completion suggester is it does not allow advance queries and filters searched.

To get rid of both these limitations, we are going to implement a custom auto-complete feature based on n-grams, which works in almost all the scenarios.

Creating an index

Let's create an index, location-suggestion with the following settings and mappings:

curl -XPUT "http://localhost:9200/location-suggestion...