บทช่วยสอนนี้สร้างขึ้นสำหรับ ElasticSearch เวอร์ชัน 5.2 เวอร์ชัน 5 มีการเปลี่ยนแปลงมากมายในแง่ของการสืบค้น DSL และการทำแผนที่
หากคุณยังคงใช้เวอร์ชัน 2.x โปรดดูที่สาขา v2 ของที่เก็บนี้
ฉันได้รวบรวมตัวอย่างไว้มากมายเพื่อแสดงคุณสมบัติและพลังที่แท้จริงของ ElasticSearch ข้อมูลจำนวนมากอิงจาก "ElasticSearch, The Definitive Guide"
ดาวน์โหลด ElasticSearch & Kibana ที่นี่ จากนั้นทำตามขั้นตอนง่ายๆ เหล่านี้:
./bin/elasticsearch
./bin/kibana
แบบฝึกหัดที่ 1 นั้นง่ายมาก และเป้าหมายคือเพื่อใช้งานอินเทอร์เฟซ ElasticSearch RESTFul
หัวข้อ:
โหลดการออกกำลังกาย 1
ในแบบฝึกหัดที่ 2 เราจะจัดทำดัชนีข้อมูลจำนวนมาก เพื่อปรับปรุงประสิทธิภาพ เรากำลังดำเนินการนี้เป็นกลุ่ม
ข้อมูลนี้มีข้อมูลจากบล็อกของ Combell ฉันได้จัดทำดัชนีข้อมูลต่อไปนี้แล้ว:
ข้อมูลนี้จะนำไปใช้ในแบบฝึกหัดอื่นๆ
โหลดข้อมูลบล็อกเป็นกลุ่ม
ในแบบฝึกหัดที่ 3 เรากำลังทำการสืบค้นพื้นฐานโดยใช้การสืบค้น ElasticSearch DSL DSL เป็นแบบ JSON และการสืบค้นเป็นการค้นหาข้อความแบบเต็ม
ต่อไปนี้เป็นการค้นหาสองสามรายการที่เรากำลังดำเนินการ:
โหลดแบบฝึกหัดที่ 3
ในแบบฝึกหัดที่ 4 เราจะเน้นไปที่การวิเคราะห์ข้อความฉบับเต็มและภาษามนุษย์ เราจะเพิกเฉยต่อความสามารถของฐานข้อมูลของ ElasticSearch และโยนข้อความลงไป และดูว่ามันจะแปลงข้อมูลเป็นโทเค็นได้อย่างไร
ElasticSearch จะสร้างโทเค็นและจัดเก็บข้อมูลในลักษณะที่แตกต่างออกไป ขึ้นอยู่กับเครื่องวิเคราะห์ที่คุณใช้ ไม่ต้องกังวล ข้อมูลต้นฉบับจะยังคงอยู่ในแหล่งที่มาของเอกสาร เพราะดัชนีกลับหัวจะเปลี่ยนแปลง
โหลดแบบฝึกหัดที่ 4
แบบฝึกหัดที่ 5 เป็นเรื่องเกี่ยวกับสคีมาของดัชนี ElasticSearch ถูกวางตลาดว่าไม่มีแผน ในความเป็นจริง ElasticSearch จะเดาสคีมาให้คุณ
ฉันจะแสดงตัวอย่างที่เดาได้สำเร็จและตัวอย่างที่เดาไม่ได้
โหลดแบบฝึกหัดที่ 5
เพื่อหลีกเลี่ยงไม่ให้ ElasticSearch เดาสคีมาผิด การแมปที่ชัดเจนจึงเป็นความคิดที่ดี แบบฝึกหัดที่ 6 จะตั้งค่าการแมปที่ถูกต้องสำหรับตัวอย่างบล็อกของเรา และแทรกข้อมูลอีกครั้ง
จำนวนเต็มและสตริงจะถูกกำหนดตามลำดับ และวันที่จะมีรูปแบบที่ถูกต้อง
การทำแผนที่ที่ชัดเจนจะถูกใช้ในแบบฝึกหัดที่ 7
โหลดแบบฝึกหัดที่ 6
การค้นหา 2 ครั้งในแบบฝึกหัดที่ 5 ที่ล้มเหลวจะถูกดำเนินการอีกครั้ง ด้วยการแมปที่ชัดเจน ผลลัพธ์จึงถูกต้อง
โหลดแบบฝึกหัดที่ 7
ในแบบฝึกหัดที่ 8 เราจะกำหนดการแมปอื่นในดัชนีบล็อกของเรา การแมปนี้จะถือว่าช่อง "ชื่อ" เป็นข้อความแบบเต็มเท่านั้น สตริงที่เหลือจะไม่ได้รับการวิเคราะห์และโทเค็น พวกเขาจะถูกเก็บไว้ "ตามสภาพ"
ข้อมูลนี้จะนำไปใช้ในแบบฝึกหัดที่ 9
โหลดแบบฝึกหัดที่ 8
ในแบบฝึกหัดที่ 9 ฉันจะแสดงให้คุณเห็นความแตกต่างระหว่างการค้นหาข้อความแบบเต็มโดยใช้ข้อความค้นหาและการจับคู่ค่าที่ตรงกันทั้งหมดโดยใช้ข้อความค้นหาในโหมดตัวกรอง
การแม็ปที่ทำในแบบฝึกหัดที่ 8 ทำให้แน่ใจว่าขณะนี้มีฟิลด์ "คำหลัก" ในคุณสมบัติชื่อแล้ว ซึ่งหมายความว่าคำค้นหาใน "title" จะถือเป็นการค้นหาข้อความแบบเต็ม และตัวกรองบูลีนในช่อง "title.keyword" ปกติจะถือเป็นค่าที่ตรงกันทุกประการ
ในตัวอย่างหนึ่ง ฉันจะแสดงให้คุณเห็นวิธีรวมข้อความค้นหาและตัวกรองหลายรายการเข้าด้วยกัน
นี่คือสิ่งที่เราจะทำในแบบฝึกหัดนี้:
โหลดแบบฝึกหัดที่ 9
เราจะทำการแมปข้อมูล อีกครั้ง ในครั้งนี้ เราจะถือว่าคุณสมบัติ "ชื่อ" เป็นช่องที่ได้รับการวิเคราะห์ ตามค่าเริ่มต้นจะใช้เครื่องวิเคราะห์ "มาตรฐาน" เนื่องจากข้อมูลของเรามีทั้งภาษาดัตช์และภาษาอังกฤษ ฉันจึงเพิ่ม 2 ช่อง:
นี่เป็นเวอร์ชันสุดท้ายของการทำแผนที่ ตัวอย่างอื่นๆ จะใช้การแมปและข้อมูลนี้
โหลดแบบฝึกหัดที่ 10
แบบฝึกหัดที่ 11 เป็นเรื่องเกี่ยวกับการวิเคราะห์ข้อความตามภาษา แบบฝึกหัดที่ 4 เป็นเพียงคำแนะนำในการวิเคราะห์ข้อมูล ตอนนี้เราจะทำการค้นหาที่อาศัยการวิเคราะห์ภาษาจริงๆ
โหลดแบบฝึกหัดที่ 11
ในแบบฝึกหัดที่ 12 เราจะสร้างดัชนี "เมือง" ใหม่ ซึ่งมีเมืองทั้งหมดที่อยู่ในจังหวัด West-Vlaanderen ของเบลเยียม ดัชนีจะจัดเก็บชื่อเมืองและพิกัดทางภูมิศาสตร์
การทำแผนที่ที่ชัดเจนและข้อมูลจะถูกนำมาใช้ในแบบฝึกหัดอื่นๆ
โหลดแบบฝึกหัดที่ 12
ในแบบฝึกหัดก่อนหน้านี้ เราได้สร้างดัชนีใหม่และจัดทำดัชนีข้อมูลทางภูมิศาสตร์บางส่วน ในแบบฝึกหัดที่ 13 เราจะทำการค้นหาข้อมูลนี้จริงๆ
จะมีการจัดแสดงคำถาม 2 ข้อ:
โหลดแบบฝึกหัดที่ 13
ในแบบฝึกหัดที่ 14 เราจะโหลดข้อมูลลงในดัชนีอื่น ดัชนีนี้เรียกว่า "รถยนต์" และมีข้อมูลการขายรถยนต์ ทุกธุรกรรมจะติดตามข้อมูลต่อไปนี้:
ข้อมูลนี้จะนำไปใช้ในแบบฝึกหัดที่ 15
โหลดการออกกำลังกาย 14
การรวมเป็นคุณลักษณะที่มีประสิทธิภาพมากของ ElasticSearch โดยพื้นฐานแล้วมันเหมือนกับ "จัดกลุ่มตาม" ใน SQL แต่มีประสิทธิภาพมากกว่ามาก การรวมกลุ่มเป็นเหตุผลที่ ElasticSearch ได้รับความนิยมในชุมชนข้อมูลขนาดใหญ่และวิทยาศาสตร์ข้อมูล
ต่อไปนี้คือการรวมกลุ่มที่เราจะดำเนินการในแบบฝึกหัดนี้:
โหลดแบบฝึกหัด 15