Summary
In this chapter, we learned what full text search is and the contribution Apache Lucene makes to this. In addition to this, we are now familiar with the basic concepts of Elasticsearch and its top-level architecture. We used the Elasticsearch REST API not only to index data, but also to update, retrieve, and finally delete it. We've learned what versioning is and how we can use it for optimistic locking in Elasticsearch. Finally, we searched our data using the simple URI query.
In the next chapter, we'll focus on indexing our data. We will see how Elasticsearch indexing works and what the role of primary shards and replicas is. We'll see how Elasticsearch handles data that it doesn't know and how to create our own mappings—the JSON structure that describes the structure of our index. We'll also learn how to use batch indexing to speed up the indexing process and what additional information can be stored along with our index to help us achieve our goal. In addition, we will discuss what an index segment is, what segment merging is, and how to tune a segment. Finally, we'll see how routing works in Elasticsearch and what options we have when it comes to both indexing and querying routing.