typesense - เอนจินค้นหาโอเพนซอร์ส
(typesense.org)- เร็วมาก และค้นหาผลลัพธ์ที่เกี่ยวข้องกับคำค้นได้
→ Typo Tolerance (รองรับการพิมพ์ผิด): สามารถตรวจจับและจัดการคำสะกดผิดได้เองในระดับหนึ่ง
-
ปรับแต่งอันดับผลการค้นหาได้สะดวก
-
รองรับการจัดเรียงตามแต่ละฟิลด์ขณะค้นหา
-
รองรับการสำรวจแบบ Facet & Filter: จัดกลุ่มผลการค้นหาตามฟิลด์ที่กำหนดและกรองได้
-
จำกัดขอบเขตของ API Key เพื่อเข้าถึงผลลัพธ์บางส่วนได้
-
คลัสเตอร์ริงบนพื้นฐานของ Raft
-
มีไบนารีสำหรับ Linux/Mac และอิมเมจ Docker ให้ใช้งาน
-
เป็นโอเพนซอร์สที่เขียนด้วย C
ใน FAQ
- ต่างจาก ElasticSearch อย่างไร?
→ ES ติดตั้งและดูแลจัดการค่อนข้างซับซ้อน แต่ TypeSense ถูกสร้างมาเพื่อ "Time-to-Market" จึงติดตั้งได้อย่างรวดเร็ว และแน่นอนว่าสเกลได้เช่นกัน
- ต่างจาก Algolia อย่างไร?
→ Algolia เป็น SaaS สำหรับเสิร์ชเอนจินที่ดีมาก แต่มีราคาสูง ส่วน TypeSense สามารถโฮสต์เองได้ และเวอร์ชัน SaaS ก็มีราคาถูกกว่า (ไม่ได้คิดค่าบริการตามจำนวนเรคอร์ดที่เก็บหรือจำนวนครั้งที่ค้นหา แต่คิดตามเวลาใช้งานและแบนด์วิดท์)
→ ในแง่ฟีเจอร์ TypeSense คล้ายกับ Algolia มากกว่า ElasticSearch
- เร็วขนาดนี้ แล้ว memory footprint เป็นอย่างไร?
→ โดยพื้นฐานแล้วเซิร์ฟเวอร์ TypeSense ใช้หน่วยความจำราว 30MB และจะเพิ่มขึ้นเมื่อเริ่มทำดัชนีข้อมูล แต่ยังคงโครงสร้างข้อมูลที่กะทัดรัดมาก
→ หัวข้อโพสต์ของ Hacker News จำนวน 1 ล้านรายการมีขนาด 88MB ในรูปแบบ JSON แต่เมื่อ Typesense ทำดัชนีและโหลดขึ้นหน่วยความจำ จะใช้ประมาณ 165MB
2 ความคิดเห็น
โดยพื้นฐานแล้ว ถ้าจะสร้างเสิร์ชเอนจินขึ้นมาใช้ภายในบริการเอง การตั้งค่าไปจนถึงการดูแลจัดการก็ค่อนข้างซับซ้อน แต่ตัวนี้เป็นโอเพนซอร์สที่ช่วยให้ทำได้อย่างรวดเร็ว
อย่างไรก็ตาม ถ้าเป็นภาษาเกาหลีก็คงมีเรื่องอย่างการตัดคำที่ต้องใส่ใจอยู่บ้าง.. แต่เพราะมันค้นหาได้รวดเร็วในระดับตัวอักษรและแสดงผลลัพธ์ออกมา จึงดูเป็นตัวเลือกที่มีคุณค่าพอให้พิจารณา
มีเว็บไซต์เดโมที่ทำขึ้นโดยใช้ TypeSense นี้อยู่ ลองดูไปด้วยกันน่าจะดีครับ