Frolics adalah perpustakaan pencarian teks lengkap, ringan, teks lengkap untuk aplikasi frontend.
Frolics terinspirasi oleh Elasticsearch dan Lucence, implementasi yang mendasarinya mencakup algoritma pemrosesan teks dan struktur data seperti tokenisasi, batang dan indeks terbalik.
Ketika sebuah docs disediakan, Frolics membuat data indeks yang dibalikkan, yang banyak digunakan dalam layanan pencarian teks lengkap utama seperti Elasticsearch dan Google Search.
Mulai sekarang, Anda dapat menghilangkan proses instalasi yang berat untuk melakukan pencarian teks lengkap, dan bahkan lebih baik, Anda mungkin tidak lagi memerlukan backend untuk mengembangkan fitur tersebut.
Frolics ada di sini untuk membantu!
Sebelum menginstal Frolics, pastikan versi node Anda kompatibel. Node V12+ OK tetapi Node V16 direkomendasikan.
Namun, Node V17+ memiliki masalah kompatibilitas ketika saya menguji frolik dalam reaksi. Tapi Node V16 bekerja dengan baik.
Setelah selesai. Jalankan npm install frolics di Terminal.
Sebelum mengimpor, diperlukan data mentah. Seharusnya terlihat seperti ini:
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',
},
];
Perlu diingat bahwa id yang unik dan bidang body konten teks diperlukan karena id membedakan setiap dokumen dan body adalah konten yang perlu dianalisis dan mengklasifikasikan data teks untuk pencarian.
Dalam Additioal to id dan body sebagai bidang yang diperlukan, Anda dapat memiliki beberapa yang berbeda untuk fitur yang berbeda. Misalnya, jika Anda menginginkan gambar pratinjau saat mencari, Anda dapat mengubah docs seperti ini:
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',
},
];
Setelah mendefinisikan docs , kami siap. Langkah selanjutnya adalah menggunakan Frolics.
Frolics mendukung sintaks ES6, oleh karena itu Anda dapat mengimpor seperti ini:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
Sekarang Anda dapat menelepon createDTM seperti ini:
const DTM = createDTM(docs);
createDTM adalah fungsi utama yang mengambil docs dan membuat kamus indeks terbalik.
Anda dapat memangkas input asli Anda dengan Stemmer untuk mendapatkan hasil yang dicari
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
Untuk contoh terperinci, silakan kunjungi folder contoh.
What createDTM Function Returns adalah kamus indeks terbalik. Ini dapat dikonversi ke format JSON yang dapat dibaca manusia dengan metode jvaScript javascript JSON.stringify .
Anda dapat memilih metode membaca file apa pun berdasarkan kerangka kerja Anda dan memuat file JSON, jika ada, sebelum memanggil fungsi createDTM .