Sonic - แบ็กเอนด์ค้นหาแบบไม่มีสคีมาที่เร็วและเบา
(github.com)-
โอเพนซอร์สทางเลือกแทน Elasticsearch ที่ทำงานได้ด้วยหน่วยความจำต่ำ (Rust)
-
ทำดัชนีด้วย ID ไม่ใช่ดัชนีเอกสาร โดยคืนค่า ID เป็นผลการค้นหา
-
รองรับการเติมคำอัตโนมัติและการแก้คำค้นหาที่พิมพ์ผิด
-
รองรับหลายภาษาโปรแกรมผ่านโปรโตคอลที่เรียบง่าย
→ รองรับอย่างเป็นทางการสำหรับ Node, PHP, Rust
→ รองรับโดยชุมชนสำหรับ Python, Go, Java, .NET เป็นต้น
- รองรับ Unicode และ 80 ภาษา
2 ความคิดเห็น
ผมไม่เคยดูแลเสิร์ชเอนจินมาก่อนเลยจึงตอบแบบมั่นใจไม่ได้ แต่คิดว่าเสิร์ชเอนจินภาษาเกาหลีมักจะถูกใช้งานร่วมกับตัววิเคราะห์หน่วยคำอยู่บ่อย ๆ ไม่ใช่หรือครับ
ในแง่ของตัววิเคราะห์หน่วยคำสำหรับภาษา CJK นั้น Sonic ยังไม่รองรับ ส่วนฝั่ง MeiliSearch เท่าที่ทราบคือในเวอร์ชันล่าสุดได้เพิ่มให้สามารถใช้ Jieba ซึ่งเป็นตัววิเคราะห์หน่วยคำภาษาจีนได้แล้ว แต่สำหรับภาษาเกาหลีน่าจะยังไม่มีครับ
มีโปรเจกต์ชื่อ Meilisearch ที่คล้ายกัน ซึ่งสร้างด้วย Rust และก็เร็วเหมือนกันครับ
ขณะที่ Sonic เก็บเฉพาะดัชนี ID แต่ Meilisearch จะเก็บทั้งเอกสารทั้งหมด
ถ้าจะใช้แทน ElasticSearch ดูเหมือนว่า Meilisearch จะใกล้เคียงกว่าเล็กน้อย และในบางกรณี Sonic ก็น่าจะใช้แทนได้ในเวอร์ชันที่เบากว่ามาก :)