In the previous chapter, we talked about general shards and the index architecture. We started by learning how to choose the right amount of shards and replicas, and we used routing during indexing and querying, and in conjunction with aliases. We also discussed shard allocation behavior adjustments, and finally, we looked at what query execution preference can bring us.
In this chapter, we will take a deeper dive into more low-level aspects of handling shards in Elasticsearch. By the end of this chapter, you will have learned:
Altering the Apache Lucene scoring by using different similarity models
Altering index writing by using codes
Near real-time indexing and querying
Data flushing, index refresh, and transaction log handling
I/O throttling
Segment merge control and visualization
Elasticsearch caching