ปกติ Elasticsaearch ข้อมูลต่าง ๆ ที่จัดเก็บในแต่ละ index
จะสามารถค้นหาได้ก็ต่อเมื่อ ทำการบันทึกลงใน disk แล้วเท่านั้น
หรือเรียกว่า Schema on write
โดย schema หรือโครงสร้างข้อมูลจะต้องถูกวางแผนก่อนเสมอ
ว่าจะมีโครงสร้างอย่างไร
ว่าแต่ละ field จะมีชนิดอะไร

แน่นอนว่าต้องใช้เวลาที่สูงขึ้นในการออกแบบและวางแผน
เพื่อทำให้ Elasticsearch มี performance ที่ดี
การทำงานที่รวดเร็ว และ ถูกต้อง

ดังนั้นทาง Elasticsearch 7.11 จึงได้คิดแนวทางที่จะลดเวลาในการออกแบบและวางแผน

สำหรับการสร้าง schema ลงไปได้ไหม
สำหรับการทดลองหรือการปรับเปลี่ยน schema ที่มีบ่อยครั้ง
จึงได้สร้างสิ่งที่เรียกว่า Schema on read ขึ้นมา
ด้วยสิ่งที่เรียกว่า Runtime fields แต่ยังเป็น beta version อยู่นะ
พร้อมเปลี่ยนแปลงได้เสมอ
ดังนั้นลองไปใช้งานกันดู

โดยที่เราสามารถกำหนดได้ในระดับ field/property ได้เลยว่า
จะให้ทำงานแบบใดระหว่าง write หรือ read
น่าสนใจมาก ๆ

Reference Websites

https://luminousmen.com/post/schema-on-read-vs-schema-on-write