ไม่ได้รับการพัฒนาอย่างแข็งขัน โปรดตรวจสอบ toshi แทน!
เซิร์ฟเวอร์การค้นหาที่เข้ากันได้กับ Elasticsearch น้ำหนักเบา
เครื่องมือค้นหาคุณภาพดีเป็นสิ่งสำคัญสำหรับเว็บไซต์จำนวนมาก และ Elasticsearch ก็จัดเตรียม REST API ที่ใช้งานง่ายไว้ด้วย แต่ปัญหาของ Elasticsearch คือมันต้องการหน่วยความจำขั้นต่ำ 2GB ซึ่งทำให้มีค่าใช้จ่ายสูงในการใช้งาน
จุดมุ่งหมายของโปรเจ็กต์นี้คือการสร้างเซิร์ฟเวอร์การค้นหาใหม่ที่ใช้ฟีเจอร์การค้นหาที่ทรงพลังและ API แบบง่ายของ Elasticsearch แต่นำไปใช้ในภาษาที่ควบคุมการใช้หน่วยความจำได้มากขึ้น เรามุ่งมั่นที่จะรักษาการใช้หน่วยความจำให้ต่ำกว่า 100MB (ไม่รวมแคช) ดังนั้นจึงควรมีราคาถูกมากในการใช้งาน
Rust ปลดปล่อยหน่วยความจำในขณะที่มันดำเนินไป แทนที่จะปล่อยให้หน่วยความจำที่ไม่ได้ใช้ถูกรวบรวมในภายหลังโดย "ตัวรวบรวมขยะ" เช่น Java ใน Elasticsearch กองขยะนี้สามารถสิ้นเปลืองหน่วยความจำกิกะไบต์ซึ่งอาจใช้เป็นแคชได้
Rust เป็นภาษาโปรแกรมระบบจาก Mozilla ที่ได้รับการออกแบบมาเพื่อสร้างซอฟต์แวร์ที่รวดเร็ว ปลอดภัย และเชื่อถือได้
โปรดพิจารณาคุณภาพก่อนอัลฟาของโครงการนี้ ขณะนี้รองรับเฉพาะชุดย่อยของ API ของ Elasticsearch ซึ่งอาจไม่เพียงพอต่อการรันแอปพลิเคชันส่วนใหญ่
ขณะนี้รองรับการจัดทำดัชนีทั้งแบบกลุ่มและแบบแยกกัน (อย่างไรก็ตาม ตัวทำดัชนีแบบกลุ่มค่อนข้างช้าในขณะนี้) และการค้นหาโดยใช้อัลกอริธึมความคล้ายคลึงกันของ BM25
ดูแผนงานสำหรับรายการสิ่งที่กำลังดำเนินการอยู่ในขณะนี้
ดูการสนับสนุน DSL ของคำค้นหา Elasticsearch
Rusticsearch ได้รับการทดสอบอย่างเป็นทางการบน Linux และ Windows เท่านั้น แต่ควรทำงานบน Mac OS X ด้วย
Rusticsearch สามารถคอมไพล์ด้วย Rust stable 1.15 หรือใหม่กว่า คุณสามารถดาวน์โหลดได้จากเว็บไซต์ Rust หรือคุณสามารถใช้สนิมได้
เมื่อติดตั้ง Rust แล้ว ให้โคลน repo และรัน cargo run
:
git clone [email protected]:kaedroho/rusticsearch.git
cd rusticsearch
cargo run