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

Bagaimana cara kerja pencarian $teks MongoDB?

Penelusuran teks MongoDB menggunakan library stemming Snowball untuk mengurangi kata menjadi bentuk akar yang diharapkan (atau batang ) berdasarkan aturan bahasa umum. Stemming algoritmik memberikan pengurangan cepat, tetapi bahasa memiliki pengecualian (seperti pola konjugasi kata kerja yang tidak teratur atau bertentangan) yang dapat mempengaruhi akurasi. Pengantar bola salju mencakup ikhtisar yang baik tentang beberapa keterbatasan stemming algoritmik.

Contoh Anda walking berasal dari walking dan cocok seperti yang diharapkan.

Namun, contoh trekking your berasal dari trekk jadi tidak cocok dengan kata kunci pencarian trek .

Anda dapat mengonfirmasi ini dengan menjelaskan kueri Anda dan meninjau parsedTextQuery informasi yang menunjukkan istilah penelusuran yang digunakan:

db.events.find({$text: {$search: 'Trekking'} }).explain().queryPlanner.winningPlan.parsedTextQuery
{
​   "terms" : [
​       "trekk"
​   ],
​   "negatedTerms" : [ ],
​   "phrases" : [ ],
​   "negatedPhrases" : [ ]
}

Anda juga dapat memeriksa stemming Bola Salju yang diharapkan menggunakan Demo Bola Salju online atau dengan mencari perpustakaan Snowball untuk bahasa pemrograman pilihan Anda.

Untuk mengatasi pengecualian yang biasanya memengaruhi kasus penggunaan Anda, Anda dapat mempertimbangkan untuk menambahkan bidang lain ke indeks teks Anda dengan kata kunci untuk memengaruhi hasil pencarian. Untuk contoh ini, Anda akan menambahkan trek sebagai kata kunci sehingga acara tersebut digambarkan sebagai trekking juga cocok dengan hasil penelusuran Anda.

Ada pendekatan lain untuk infleksi yang lebih akurat yang umumnya disebut sebagai lemmatisasi . Algoritme lemmatisasi lebih kompleks dan mulai mengarah ke domain pemrosesan bahasa alami . Ada banyak toolkit open source (dan komersial) yang mungkin dapat Anda manfaatkan jika Anda ingin menerapkan pencarian teks yang lebih canggih dalam aplikasi Anda, tetapi ini berada di luar cakupan fitur pencarian teks MongoDB saat ini.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pengujian Integrasi Boot Musim Semi dengan MongoDB Tersemat

  2. Cara mendaftar dan memanggil skema di luwak

  3. Mongotemplate - Query ObjectId menurut lebih besar dari (gt) atau kurang dari (lt) operator

  4. Bagaimana cara menentukan rentang sharding untuk setiap shard di Mongo?

  5. Bagaimana cara melakukan pencarian $lookup bersarang di MongoDB?