Stemming bahasa dalam pencarian teks menggunakan algoritme untuk mencoba menghubungkan kata-kata yang berasal dari dasar yang sama (misalnya "berjalan" harus cocok dengan "berjalan"). Ini berbeda dengan awalan yang cocok (mis. "biru" yang cocok dengan "blueberry") yang ingin Anda terapkan untuk fitur pelengkapan otomatis.
Untuk paling efektif menggunakan typeahead.js
dengan pencarian teks MongoDB saya sarankan untuk fokus pada prefetch
dukungan di typeahead:
-
Buat
keywords
koleksi yang memiliki kata-kata umum (mungkin dengan jumlah frekuensi penggunaan) yang digunakan dalam koleksi Anda. Anda dapat membuat koleksi ini dengan menjalankan Map/Reduce di seluruh koleksi Anda memiliki indeks pencarian teks, dan perbarui daftar kata menggunakan Peta Inkremental/Pengurangan saat dokumen baru ditambahkan. -
Minta aplikasi Anda membuat dokumen JSON dari
keywords
koleksi dengan kata kunci unik (mungkin terbatas pada kata kunci "populer" berdasarkan frekuensi kata agar daftar tetap dapat dikelola/relevan).
Anda kemudian dapat menggunakan kata kunci yang dihasilkan JSON untuk pelengkapan otomatis sisi klien dengan prefetch
typeahead fitur:
$('.mysearch .typeahead').typeahead({
name: 'mysearch',
prefetch: '/data/keywords.json'
});
typeahead.js
akan menyimpan prefetch
Data JSON di localStorage untuk penelusuran sisi klien. Saat formulir pencarian dikirimkan, aplikasi Anda dapat menggunakan sisi server MongoDB pencarian teks
untuk mengembalikan hasil lengkap dalam urutan relevansi.