Frolics เป็นไลบรารีการค้นหาแบบออฟไลน์น้ำหนักเบาและเต็มรูปแบบสำหรับแอปพลิเคชันส่วนหน้า
Frolics ได้รับแรงบันดาลใจจาก Elasticsearch และ Lucence การใช้งานพื้นฐานรวมถึงอัลกอริธึมการประมวลผลข้อความและโครงสร้างข้อมูลเช่นการทำให้เป็นโทเค็นการเกิดขึ้นและดัชนีกลับด้าน
เมื่อมีการจัดทำ docs Frolics จะสร้างข้อมูลดัชนีที่ถูกนำไปใช้ตามลำดับซึ่งใช้กันอย่างแพร่หลายในบริการค้นหาข้อความแบบเต็มรูปแบบที่สำคัญเช่น Elasticsearch และ Google Search
จากนี้ไปคุณสามารถละเว้นกระบวนการติดตั้งที่เป็นภาระเพื่อทำการค้นหาข้อความเต็มและดียิ่งขึ้นคุณอาจไม่จำเป็นต้องใช้แบ็กเอนด์เพื่อพัฒนาคุณสมบัติดังกล่าวอีกต่อไป
Frolics อยู่ที่นี่เพื่อช่วย!
ก่อนที่จะติดตั้ง frolics โปรดตรวจสอบให้แน่ใจว่าเวอร์ชันโหนดของคุณเข้ากันได้ Node V12+ ไม่เป็นไร แต่แนะนำให้ใช้ Node V16
อย่างไรก็ตาม Node V17+ มีปัญหาความเข้ากันได้เมื่อฉันทดสอบ frolics ใน ReactJs แต่ Node V16 ทำงานได้ดี
เมื่อเสร็จแล้ว เรียกใช้ npm install frolics ในเทอร์มินัล
ก่อนที่จะนำเข้าจำเป็นต้องมีข้อมูลดิบ ควรมีลักษณะเช่นนี้:
const docs = [
{
id: 1,
body: 'this is a test full text'
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
โปรดทราบว่าจำเป็นต้องใช้ id ที่ไม่ซ้ำกันและ body เนื้อหาเนื้อหาข้อความเนื่องจาก id แยกความแตกต่างของเอกสารและ body เป็นเนื้อหาที่ต้องการในการวิเคราะห์และจำแนกข้อมูลข้อความสำหรับการค้นหา
ใน additioal to id และ body เป็นฟิลด์ที่ต้องการคุณสามารถมีหลายอย่างสำหรับคุณสมบัติที่แตกต่างกัน ตัวอย่างเช่นหากคุณต้องการภาพตัวอย่างเมื่อค้นหาคุณสามารถเปลี่ยน docs เช่นนี้:
const docs = [
{
id: 1,
body: 'this is a test full text',
// imagesURL field is totally optional, you can have different name and data structure
imagesURL: 'https://yourImage.com/img1.png',
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
หลังจากกำหนด docs เราทุกคนพร้อมแล้ว ขั้นตอนต่อไปคือการใช้ Frolics
Frolics รองรับไวยากรณ์ ES6 ดังนั้นคุณสามารถนำเข้าเช่นนี้:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
ตอนนี้คุณสามารถเรียก createDTM เช่นนี้:
const DTM = createDTM(docs);
createDTM เป็นฟังก์ชั่นหลักที่ใช้ docs และสร้างพจนานุกรมดัชนีกลับด้าน
คุณสามารถตัดอินพุตดั้งเดิมของคุณด้วย Stemmer เพื่อรับผลลัพธ์การค้นหา
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
สำหรับตัวอย่างโดยละเอียดกรุณาเยี่ยมชมโฟลเดอร์ตัวอย่าง
ฟังก์ชั่น createDTM สิ่งที่ส่งคืนคือพจนานุกรมดัชนีคว่ำ สามารถแปลงเป็นรูปแบบ JSON ที่มนุษย์อ่านได้ด้วยฟังก์ชั่น JavaScript แบบง่าย ๆ ในตัว JSON.stringify
คุณสามารถเลือกวิธีการอ่านไฟล์ใด ๆ ตามเฟรมเวิร์กของคุณและโหลดไฟล์ JSON หากมีอยู่ก่อนที่จะเรียกใช้ฟังก์ชัน createDTM