學(xué)完ES分布式集群的工作原理以及一些基本的將數(shù)據(jù)放入索引然后檢索它們的所有方法,我們可以繼續(xù)學(xué)習(xí)在分布式系統(tǒng)中,每個分片的文檔是被如何索引和查詢的。
路由
首先,我們需要明白,文檔和分片之間是如何匹配的,這就是路由。當(dāng)你索引一個文檔,它被存儲在單獨一個主分片上。Elasticsearch是如何知道文檔屬于哪個分片的呢?當(dāng)你創(chuàng)建一個新文檔,它是如何知道是應(yīng)該存儲在分片1還是分片2上的呢?
進(jìn)程不能是隨機的,因為我們將來要檢索文檔。事實上,它根據(jù)一個簡單的算法決定:
shard = hash(routing) % number_of_primary_shards
routing
值是一個任意字符串,它默認(rèn)是_id
但也可以自定義。這個
網(wǎng)友評論