ฉันจะพยายามอธิบายด้วยตัวอย่างจริงเนื่องจากคำตอบและคำตอบที่คุณได้รับดูเหมือนจะไม่ช่วยคุณ
เมื่อคุณดาวน์โหลด elasticsearch และเริ่มต้นขึ้นคุณจะสร้างโหนด elasticsearch ซึ่งพยายามเข้าร่วมคลัสเตอร์ที่มีอยู่หากมีหรือสร้างขึ้นใหม่ สมมติว่าคุณสร้างคลัสเตอร์ใหม่ของคุณเองด้วยโหนดเดียวโหนดที่คุณเพิ่งเริ่มต้น เราไม่มีข้อมูลดังนั้นเราต้องสร้างดัชนี
เมื่อคุณสร้างดัชนี (ดัชนีจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณจัดทำดัชนีเอกสารแรกเช่นกัน) คุณสามารถกำหนดได้ว่าจะประกอบไปด้วยจำนวนใด หากคุณไม่ระบุหมายเลขจะมีจำนวนเศษเริ่มต้น: 5 รายการ มันหมายความว่าอะไร?
มันหมายความว่า ElasticSearch จะสร้าง 5 เศษหลักที่จะมีข้อมูลของคุณ:
 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|
ทุกครั้งที่คุณทำดัชนีเอกสาร ElasticSearch จะตัดสินใจว่าเอกสารหลักที่ควรเก็บเอกสารนั้นและจะทำดัชนีที่นั่น เศษหลักไม่ใช่สำเนาของข้อมูล แต่เป็นข้อมูล! การมีหลายเศษจะช่วยให้ได้ประโยชน์จากการประมวลผลแบบขนานบนเครื่องเดียว แต่ประเด็นทั้งหมดก็คือถ้าเราเริ่มต้นการค้นหาด้วยอีลาสติกอื่นในคลัสเตอร์เดียวกันชิ้นส่วนจะถูกกระจายอย่างสม่ำเสมอ
โหนด 1 จะเก็บตัวอย่างไว้เพียงสามชิ้นเท่านั้น:
 ____    ____    ____ 
| 1  |  | 2  |  | 3  |
|____|  |____|  |____|
เนื่องจากเศษสองส่วนที่เหลือถูกย้ายไปยังโหนดเริ่มต้นใหม่:
 ____    ____
| 4  |  | 5  |
|____|  |____|
ทำไมสิ่งนี้ถึงเกิดขึ้น เนื่องจาก elasticsearch เป็นเครื่องมือค้นหาแบบกระจายและด้วยวิธีนี้คุณสามารถใช้ประโยชน์จากหลาย ๆ โหนด / เครื่องเพื่อจัดการข้อมูลจำนวนมาก
ดัชนีการค้นพบทั้งหมดของอีเล็คทรอนิคส์ประกอบด้วยอย่างน้อยหนึ่งชิ้นส่วนหลักเนื่องจากเป็นที่เก็บข้อมูล เศษทุกชิ้นมีค่าใช้จ่ายดังนั้นหากคุณมีโหนดเดียวและไม่มีการเติบโตที่คาดการณ์ได้เพียงติดกับเศษชิ้นส่วนหลักเดียว
Shard อีกประเภทหนึ่งคือแบบจำลอง ค่าเริ่มต้นคือ 1 หมายถึงทุกชิ้นส่วนหลักจะถูกคัดลอกไปยังส่วนอื่นที่จะมีข้อมูลเดียวกัน แบบจำลองถูกใช้เพื่อเพิ่มประสิทธิภาพการค้นหาและล้มเหลว แบบจำลองจะไม่ถูกจัดสรรบนโหนดเดียวกันซึ่งเป็นส่วนหลักที่เกี่ยวข้อง (มันค่อนข้างจะเหมือนกับการสำรองข้อมูลลงในดิสก์เดียวกันกับข้อมูลต้นฉบับ)
กลับไปที่ตัวอย่างของเราด้วย 1 แบบจำลองเราจะมีดัชนีทั้งหมดในแต่ละโหนดเนื่องจาก 2 ชิ้นส่วนของแบบจำลองจะได้รับการจัดสรรในโหนดแรกและพวกเขาจะมีข้อมูลเช่นเดียวกับเศษหลักในโหนดที่สอง:
 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4R |  | 5R |
|____|  |____|  |____|  |____|  |____|
เหมือนกันสำหรับโหนดที่สองซึ่งจะมีสำเนาของเศษหลักในโหนดแรก:
 ____    ____    ____    ____    ____
| 1R |  | 2R |  | 3R |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|
ด้วยการตั้งค่าเช่นนี้หากโหนดล่มคุณยังคงมีดัชนีทั้งหมด เรพลิกาเศษจะกลายเป็นอุปกรณ์อัตโนมัติและคลัสเตอร์จะทำงานอย่างถูกต้องแม้โหนดล้มเหลวดังต่อไปนี้:
 ____    ____    ____    ____    ____
| 1  |  | 2  |  | 3  |  | 4  |  | 5  |
|____|  |____|  |____|  |____|  |____|
เนื่องจากคุณมี"number_of_replicas":1แบบจำลองไม่สามารถกำหนดได้อีกต่อไปเนื่องจากไม่มีการจัดสรรบนโหนดเดียวกันกับที่เป็นแหล่งข้อมูลหลัก นั่นเป็นเหตุผลที่คุณจะมี 5 เศษยังไม่ได้มอบหมายเลียนแบบและสถานะคลัสเตอร์จะแทนYELLOW GREENไม่มีการสูญหายของข้อมูล แต่อาจดีกว่าเนื่องจากไม่สามารถกำหนดเศษบางส่วนได้
ทันทีที่โหนดที่เหลือถูกสำรองข้อมูลมันจะเข้าร่วมคลัสเตอร์อีกครั้งและแบบจำลองจะถูกกำหนดอีกครั้ง สามารถโหลดชิ้นส่วนที่มีอยู่บนโหนดที่สองได้ แต่ต้องทำการซิงโครไนซ์กับส่วนอื่นเนื่องจากการดำเนินการเขียนส่วนใหญ่เกิดขึ้นขณะที่โหนดหยุดทำงาน GREENในตอนท้ายของการดำเนินการนี้สถานะคลัสเตอร์จะกลายเป็น
หวังว่านี่จะอธิบายสิ่งต่าง ๆ ให้คุณ