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

Working with synonyms


Full text searches often require synonym searches. For example, if a user is searching for equity then he would expect to get the results which contain share and stock. A user might search for the US and expect to find documents that contain United States, USA, U.S.A., or America. However, they wouldn't expect to see results about the states of matter or state machines.

Note

Synonyms are used to broaden the scope matching documents and often people try to provide synonyms for every word in the language, to ensure that any document can be found with even the most remotely related terms. But they should be used only when necessary and just as with partial matching we have seen in previous sections, synonym fields should not be used alone but should be combined with a query to set the context and get better results.

Synonyms appear to be a very simple concept but they are very tricky to implement. They are prone to yield false positive or false negative results if all scenarios...