Elasticsearch

ฐานข้อมูล

ค้นหา ดัชนี และ aggregate ข้อมูล Elasticsearch ผ่านการสนทนา

คุณสามารถทำอะไรได้บ้าง

ค้นหาโดยไม่ต้องเขียน DSL

อธิบายการค้นหาของคุณเป็นภาษาอังกฤษธรรมดา — "ค้นหาบันทึกข้อผิดพลาดทั้งหมดจากบริการการชำระเงินใน 2 ชั่วโมงที่ผ่านมาด้วยรหัสสถานะ 5xx" — และ Neotask สร้าง Query DSL ที่ถูกต้อง ดำเนินการ และนำเสนอ Hit ในรูปแบบที่อ่านได้

สร้างการรวมกลุ่มสำหรับการวิเคราะห์

ขอการรวมกลุ่มโดยไม่ต้องเรียนรู้ไวยากรณ์การรวมของ Elasticsearch: "แสดงจำนวนคำขอตามจุดสิ้นสุดและเวลาตอบสนองโดยเฉลี่ย ที่ฝากไว้เป็นชั่วโมง" Neotask เขียนโครงสร้าง aggs ที่ซ้อนกันและจัดรูปแบบผลลัพธ์เป็นตาราง

ตรวจสอบความสมบูรณ์ของคลัสเตอร์

ขอรายงานสถานะคลัสเตอร์: ความสมบูรณ์โดยรวม (เขียว/เหลือง/แดง) ชาร์ดที่ยังไม่ได้กำหนด และเหตุใดจึงถูกยกเลิกการกำหนด การใช้ดิสก์ของโหนด และดัชนีใดๆ ที่มีความเสี่ยงหรือไม่ Neotask สอบถาม _cat และ _cluster APIs และอธิบายสิ่งที่จำเป็นต้องดำเนินการ

จัดการดัชนีและการแมป

สร้างดัชนีด้วยการแมปแบบกำหนดเอง เพิ่มฟิลด์ลงในการแมปที่มีอยู่ จัดทำดัชนีข้อมูลใหม่ และจัดการนามแฝง — ทั้งหมดนี้ผ่านการสนทนา Neotask ยืนยันการดำเนินการทำลายล้าง (เช่นการลบดัชนี) ก่อนดำเนินการ

ปรับแต่งและวินิจฉัยประสิทธิภาพ

ถามว่าทำไมข้อความค้นหาบางรายการจึงช้า รับคำอธิบายการวิเคราะห์โปรไฟล์ ระบุส่วนแบ่งข้อมูลยอดนิยม และค้นหาดัชนีที่มีความกดดันในการผสานสูง Neotask แปลข้อมูลภายในของ Elasticsearch เชิงเทคนิคให้เป็นคำแนะนำที่นำไปปฏิบัติได้

ลองถามดู

  • "ค้นหาดัชนีบันทึกสำหรับข้อผิดพลาดทั้งหมด 500 รายการจากชั่วโมงที่แล้ว"
  • "แสดงปริมาณคำขอตามบริการสำหรับวันนี้ โดยแบ่งออกเป็นกลุ่มรายชั่วโมง"
  • "ทำไมคลัสเตอร์ของฉันถึงเป็นสีเหลือง ชิ้นส่วนใดที่ยังไม่ได้กำหนด"
  • "สร้างดัชนีชื่อผลิตภัณฑ์พร้อมการจับคู่ชื่อ (ข้อความ) ราคา (ลอยตัว) และหมวดหมู่ (คำหลัก)"
  • "ดัชนีใดที่ใช้พื้นที่ดิสก์มากที่สุด"
  • "เหตุใดข้อความค้นหานี้จึงช้า" (วางข้อความค้นหาของคุณ JSON)
  • "ตั้งค่านโยบาย ILM เพื่อโรลโอเวอร์ดัชนีบันทึกทุกวันและลบหลังจาก 30 วัน"
  • "จัดทำดัชนีคำสั่งซื้อ-v1 ใหม่ในคำสั่งซื้อ-v2 ด้วยการแมปที่อัปเดต"
  • เคล็ดลับมือโปร

  • รวมชื่อดัชนีและฟิลด์เวลาในข้อความแจ้งของคุณ: "ในดัชนี nginx-logs-* กรองเป็น 24 ชั่วโมงที่ผ่านมาโดยใช้ฟิลด์ @timestamp" เพื่อการสืบค้นที่แม่นยำและรวดเร็ว
  • ขอให้ Neotask ใช้บริบทตัวกรองแทนบริบทการค้นหาสำหรับตัวกรองบูลีนที่ไม่ให้คะแนน — มันจะปรับ DSL ของคุณให้เหมาะสมเพื่อประสิทธิภาพโดยอัตโนมัติ
  • เมื่อต้องจัดการกับชาร์ดที่ไม่ได้กำหนด ให้ขอเอาต์พุต "คำอธิบายการจัดสรร" และให้ Neotask ตีความมัน — JSON แบบดิบนั้นมีความหนาแน่นและยากที่จะแยกวิเคราะห์ด้วยตนเอง
  • สำหรับการเปลี่ยนแปลงการแมป ให้ Neotask ตรวจสอบเสมอว่ามีฟิลด์นี้อยู่แล้วก่อนที่จะเพิ่ม — Elasticsearch จะเพิกเฉยต่อการกำหนดฟิลด์ใหม่ด้วยประเภทอื่น ซึ่งทำให้เกิดข้อขัดแย้งในการแมป
  • ใช้นามแฝงดัชนีในข้อความแจ้งของคุณ เพื่อให้ Neotask กำหนดเป้าหมายนามแฝงแทนชื่อดัชนีเฉพาะ ทำให้ข้อความค้นหาของคุณเข้ากันได้กับดัชนีใหม่ในอนาคต