ใช้ text เมื่อต้องการหาคำภายในค่า ใช้ keyword เมื่อต้องการค่าทั้งหมดสำหรับกรอง เรียง หรือจัดกลุ่ม
เปรียบเทียบชื่อเดียวกัน
สมมติชื่อสินค้า เมื่อใช้ analyzer ที่แยกคำและเปลี่ยนเป็นตัวพิมพ์เล็ก จะได้ และ การค้นหา จึงพบชื่อนี้ได้
ใช้ text เมื่อต้องการหาคำภายในค่า ใช้ keyword เมื่อต้องการค่าทั้งหมดสำหรับกรอง เรียง หรือจัดกลุ่ม
สมมติชื่อสินค้า เมื่อใช้ analyzer ที่แยกคำและเปลี่ยนเป็นตัวพิมพ์เล็ก จะได้ และ การค้นหา จึงพบชื่อนี้ได้
Blue Shoesblueshoesshoesการแทนแบบ keyword เก็บค่าเป็น term เดียว โดยขึ้นกับ normalizer ที่ตั้งไว้ เหมาะสำหรับค้นหาทั้งชื่อหรือจัดกลุ่มสินค้าตามค่านั้น
ส่วน mapping นี้กำหนดการจัดเก็บใน index สองรูปแบบ:
{
"properties": {
"title": {
"type": "text",
"fields": { "raw": { "type": "keyword" } }
}
}
}
ค้นคำใน title และเรียงหรือ aggregate ทั้งชื่อใน title.raw โดย multi-field หมายถึง index ข้อมูลเข้าเดียวกันมากกว่าหนึ่งแบบ ไม่ใช่ส่งสองสำเนาในทุก document
ทั้งสองแบบต้องใช้ indexing และพื้นที่เก็บ สำหรับ status อย่าง published อาจใช้ keyword อย่างเดียวพอ หากจัดกลุ่มทั้งชื่อให้ใช้ keyword แทนเปิด text fielddata ซึ่งโหลด term ที่ผ่านการวิเคราะห์เพื่อทำงานเหล่านี้และอาจกินหน่วยความจำมาก
คลังคำถามสัมภาษณ์งาน IT พร้อมคำตอบโดยละเอียด — ตั้งแต่ระดับ Junior ถึง Senior
บริจาค