Cara menggunakan pencarian teks lengkap di mongodb

Ketika kita melihat materi menggunakan frase atau kata kunci, contoh terbaik adalah pencarian Google. Dengan pencarian teks lengkap MongoDB, kita dapat membuat indeks teks pada kolom mana pun dalam dokumen menggunakan string atau array string

Sintaks pencarian teks lengkap di MongoDB di Ubuntu 20. 04 ?

Sintaks yang disebutkan adalah sebagai berikut

db. Nama_Koleksi. temukan ({$teks . {$search . “string” }})

Fungsi find() digunakan dengan parameter berikut dalam sintaks di atas

  • Nama_Koleksi. mengacu pada nama koleksi yang ada
  • Menemukan. dilakukan untuk mencari menggunakan find
  • $teks. digunakan untuk melakukan pencarian koleksi yang memenuhi tujuan kami
  • $pencarian. digunakan untuk melakukan pencarian
  • Rangkaian. mengacu pada string tertentu yang ingin kita cari dalam koleksi, dan kita dapat menggunakan fungsi pencarian untuk menemukan kata yang tepat

Bekerja pada operator $text di MongoDB di Ubuntu 20. 04

Daftar teks disediakan oleh MongoDB untuk membantu pencarian teks pada konten string. Bidang apa pun dengan nilai string atau rentang komponen string dapat disertakan dalam rekaman teks. Anda harus memiliki catatan teks dalam koleksi Anda untuk melakukan pertanyaan pencarian teks. Bahkan sebuah koleksi hanya memiliki satu record pencarian topik. Daftar dapat menjangkau beberapa bidang

Bagaimana kinerja pencarian teks lengkap di MongoDB di Ubuntu 20. 04

Sekarang, lihat contoh-contoh tertentu untuk lebih memahami berbagai hal. Pertama kita buat database dengan nama “myDemo”. Di dalam database ini, kami telah mendefinisikan koleksi sebagai "buah". Kemudian, kueri insertMany digunakan untuk menyisipkan dokumen koleksi karena tangkapan layar menampilkan bidang dan nilai terhadap bidang ini untuk dokumen koleksi "buah" di bawah

Cara menggunakan pencarian teks lengkap di mongodb

Kueri “db. buah-buahan. find()” menghasilkan atribut dan entitas dari koleksi “fruits” sebagai berikut. Kami memiliki tiga dokumen yang direkam untuk pengumpulan "buah"

Cara menggunakan pencarian teks lengkap di mongodb

Sekarang, mari kita periksa bagaimana kita dapat melakukan pencarian teks lengkap

Contoh 1. Membuat indeks teks di MongoDB di Ubuntu 20. 04

Kami harus membuat indeks teks pada kumpulan data sebelum Anda dapat menggunakan fitur pencarian teks lengkap MongoDB. Indeks adalah struktur data unik yang mengisolasi sepotong data terbatas dari setiap teks dalam kumpulan dari dokumen itu sendiri. Mari kita lihat cara melakukan pencarian teks lengkap

Indeks teks dibuat dengan cara yang sama seperti indeks konvensional, alih-alih menentukan urutan naik/turun, indeks ini menentukan kata kunci teks

Cara menggunakan pencarian teks lengkap di mongodb

Di atas, kami memiliki permintaan untuk pencarian teks lengkap. Kami telah menggunakan metode createIndex() untuk membuat indeks teks. Kami menetapkan dua bidang "subjek" dan "konten" ke teks tipe indeks

Dengan menjalankan kueri createIndex pada shell MongoDB, keluaran berikut mengonfirmasi pembuatan indeks

Cara menggunakan pencarian teks lengkap di mongodb

Contoh #2. Mencari kata atau frasa dari teks lengkap di MongoDB di Ubuntu 20. 04

Mencari dokumen yang terdiri dari satu atau beberapa kata mungkin merupakan tantangan pencarian yang paling umum. Pengguna mungkin berharap browser web dapat beradaptasi untuk memilih di mana frase pencarian tertentu harus ditampilkan. Saat menggunakan indeks teks, MongoDB mendekati kueri penelusuran umum dengan cara yang sama. Dengan beberapa contoh, langkah ini menjelaskan bagaimana MongoDB memproses permintaan pencarian

Cara menggunakan pencarian teks lengkap di mongodb

Di sini, kami memiliki kueri “db. buah-buahan. Temukan()". Kueri menggunakan operator $text, yang memberi tahu MongoDB di sini bahwa kueri akan menggunakan indeks teks yang telah kita tentukan sebelumnya. Juga, hanya satu indeks teks yang diperbolehkan di setiap koleksi. Kemudian, di dalam operator $teks kita memiliki operator lain yang disebut $search yang digunakan untuk mencari nilai "manis" dari dokumen yang diberikan

Seperti yang Anda lihat, kami hanya memiliki satu dokumen dengan konten teks "manis". Dengan menjalankan kueri di atas, seluruh detail dokumen yang memiliki konten teks "manis" ditampilkan sebagai berikut

Cara menggunakan pencarian teks lengkap di mongodb

Sekarang, kami mencari dua kata dengan menggunakan kueri berikut

Cara menggunakan pencarian teks lengkap di mongodb

Kami telah memberikan dua kata "vitamin C" ke operator $search yang disebut di dalam operator $text. Saat kueri dijalankan, ini menunjukkan catatan dokumen yang memiliki vitamin C tercantum dalam teks sebagai berikut

Cara menggunakan pencarian teks lengkap di mongodb

Contoh #3. Mencetak dan menyortir hasil pencarian teks lengkap di MongoDB di Ubuntu 20. 04

Setiap dokumen menerima skor dari pencarian teks yang menunjukkan seberapa relevannya dengan permintaan pencarian. Skor ini digunakan untuk mengkategorikan semua catatan dalam hasil pencarian. Skor yang lebih tinggi berarti kontes lebih bermakna

Cara menggunakan pencarian teks lengkap di mongodb

Kami memiliki operator $text yang mencari dua kata "Mangga" dan "Orange" dengan bantuan operator $search. Kemudian, kami memiliki proyeksi {score. $meta. “textScore”} yang menggunakan operator $meta, yang mengembalikan metadata tertentu dari dokumen yang diambil. Metadata textScore, yang merupakan komponen bawaan dari mesin pencari teks lengkap MongoDB dan menyimpan skor relevansi pencarian, dikembalikan dalam kasus ini

Seperti disebutkan dalam dokumen filter, dokumen yang dihasilkan akan menambahkan kolom baru bernama skor setelah menjalankan kueri

Cara menggunakan pencarian teks lengkap di mongodb

Sekarang, kami telah menggunakan fungsi sortir untuk proyeksi {score. $meta. “textScore”}. Dokumen pengurutan menggunakan sintaks yang sama dengan dokumen proyeksi

Cara menggunakan pencarian teks lengkap di mongodb

Mango teks memiliki skor relevansi terbesar, sehingga menjadi yang pertama di layar keluaran

Cara menggunakan pencarian teks lengkap di mongodb

Kesimpulan

Kami telah memperoleh cara menggunakan fungsionalitas pencarian teks lengkap MongoDB dengan mengikuti tutorial ini. Anda membuat indeks teks dan menyusun kueri penelusuran teks yang menyertakan satu dan banyak kata, seluruh frasa, dan pengecualian. Anda juga telah menilai relevansi makalah yang dikembalikan dan memerintahkan hasil pencarian untuk menampilkan item yang paling relevan terlebih dahulu

Bagaimana cara mencari string di semua bidang di MongoDB?

untuk melakukan pencarian teks di semua bidang, pertama-tama Anda harus membuat indeks teks di semua bidang. seperti yang ditunjukkan oleh dokumentasi mongodb, "Untuk mengizinkan pencarian teks pada semua bidang dengan konten string, gunakan penentu karakter pengganti ($**) untuk mengindeks semua bidang yang berisi konten string."

Bagaimana cara mencari item di MongoDB?

Dalam MongoDB, metode find() digunakan untuk memilih dokumen dalam koleksi dan mengembalikan kursor ke dokumen yang dipilih. Cursor berarti pointer yang menunjuk ke dokumen, ketika kita menggunakan metode find() mengembalikan pointer pada dokumen yang dipilih dan mengembalikan satu per satu.

Bagaimana cara menyimpan teks panjang di MongoDB?

Tulis string ke koleksi MongoDB GridFS . $bucket = (MongoDB\Client baru)->test->selectGridFSBucket(); . Kolom _id dari dokumen metadata yang terkait dengan file GridFS yang baru dibuat.

Apa perbedaan antara teks dan indeks pencarian di MongoDB?

Saat Anda membuat indeks reguler pada bidang string, ia mengindeks seluruh nilai dalam string. Sebagian besar berguna untuk string kata tunggal (seperti nama pengguna untuk login) di mana Anda dapat mencocokkannya dengan tepat. Indeks teks di sisi lain akan memberi token dan membendung konten bidang .