What is the reason why the number of main fragments of elasticsearch can not be changed?
This article introduces the relevant knowledge of "what is the reason why the number of main fragments of elasticsearch can not be changed?" in the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
When a document is indexed, the document is stored in a main shard. How does Elasticsearch know which shard a document should be stored in? When we create a document, how does it decide whether the document should be stored in shard 1 or shard 2?
First of all, it certainly won't be random, otherwise we won't know where to look when we get the document in the future. In fact, this process is based on the following formula:
Shard = hash (routing)% number_of_primary_shards
Routing is a variable value, the default is the document's _ id, or it can be set to a custom value. Routing generates a number through the hash function, which is then divided by number_of_primary_shards (the number of main slices) to get the remainder. The remainder, which ranges from 0 to number_of_primary_shards-1, is where the document we are looking for is located.
This explains why we have to determine the number of primary shards when creating the index and never change that number: because if the number changes, all previously routed values will be invalid and the document will never be found again.
This is the end of the content of "the reason why the number of elasticsearch main fragments can not be changed". Thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!