MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pencarian teks lengkap MongoDB + solusi untuk pencocokan kata sebagian

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mendapatkan ukuran dokumen tunggal di Mongodb?

  2. Saya mendapatkan kesalahan saat menggunakan aplikasi Node.Js dengan mongoDB di Elastic Beanstalk

  3. Mongodb membaca kunci

  4. Tidak dapat mengakses properti objek dari respons Mongoose

  5. Menyiapkan beberapa wadah Docker dan MongoDB untuk dijalankan di CircleCI