First of all, we would like to say that this book is not one that you take and learn Elasticsearch from scratch. We expect the reader to already know part of Elasticsearch. Basically it is targeted for users that would like to extend their knowledge about Elasticsearch. If you are looking for a book that will guide you from scratch, please look at our second book – Elasticsearch Server Second Edition. However if you are looking for a book that will help you extend your knowledge about Elasticsearch, this may be a good position to read and help yourself. The book itself is not only an update to Mastering Elasticsearch, which was also released by Packt Publishing, but also a rewrite and restructuring of the book based on the comments from the readers. The content of the book is slightly similar to what could have been found in the first edition of the book, but re-written and of course extended. The book is also up to date on Elasticsearch right now as it covers the newest Elasticsearch version available at the day of book publication – the 1.4.4.
The book was divided into nine chapters:
- Chapter 1, Introduction – shows you how Apache Lucene works on the higher level and re-introduces you to the world of Elasticsearch describing the basic concepts.
- Chapter 2, Power User Query DSL – covers Apache Lucene scoring, queries rewrites, queries templates. In addition to that it shows you why you should use filters and which queries to use in a particular use-case with description why.
- Chapter 3, Not Only Full Text Search – queries rescoring, multi-matching control and description of very highly anticipated aggregations – significant terms and top terms. It also covers scripting and relationships between documents in Elasticsearch.
- Chapter 4, Improving the User Search Experience – introduces the reader to the world of suggesters based on Wikipedia example data (when it comes to terms and phrase suggesters). Similar to the previous edition of the book, this chapter also includes information on improving query relevance with extensive example of such tuning.
- Chapter 5, The Index Distribution Architecture – covers how to chose the right amount of shards and replicas, how routing works, how shard allocation works and how to change its behavior. Finally query execution preference is also discussed in this chapter, so it allows you to design your indices and query execution properly.
- Chapter 6, Low-level Index Control – covers Apache Lucene scoring, similarities implementations and how they affect the scoring. It shows you what NRT is about, what transaction log is and how to adjust it depending on your use case. Finally we jump into segment merging, caching and circuit breakers.
- Chapter 7, Elasticsearch Administration – a few words (one could write more than one book about that topic) on discovery configuration, gateway module configuration and why you should bother. We also discuss tribe nodes allowing federated search across multiple clusters, Cat API and snapshot backup and restore to different cloud service providers.
- Chapter 8, Improving Performance – a chapter dedicated to performance related topics, which covers things like doc values usage, JVM garbage collector work, queries benchmarking and preparing Elasticsearch for high indexing and querying use cases.
- Chapter 9, Developing Elasticsearch Plugins – a final chapter targeted at users who would like to develop their own Elasticearch plug-ins. We start with showing the basics of what needs to be done in order to develop Elasticsearch plug-in and we show two simple implementations – REST API handler and language analysis extension.