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

MongoDB - Perbedaan antara indeks pada bidang teks dan indeks teks?

Kedua opsi indeks sangat berbeda.

  • Saat Anda membuat indeks reguler pada bidang string, indeks itu mengindeks seluruh nilai dalam string. Sebagian besar berguna untuk string kata tunggal (seperti nama pengguna untuk login) di mana Anda dapat mencocokkan dengan tepat.

  • Indeks teks di sisi lain akan menandai dan membendung konten bidang. Jadi itu akan memecah string menjadi kata-kata atau token individual, dan selanjutnya akan menguranginya menjadi batangnya sehingga varian dari kata yang sama akan cocok ("talk" cocok dengan "talks", "talked" dan "talking" misalnya, sebagai "talk" adalah batang dari ketiganya). Sangat berguna untuk teks yang benar (kalimat, paragraf, dll).

    Penelusuran Teks

    Pencarian teks mendukung pencarian konten string dalam dokumen koleksi. MongoDB menyediakan $text operator untuk melakukan pencarian teks dalam kueri dan dalam alur agregasi.

    Proses pencarian teks:

    tokenizes and stems the search term(s) during both the index creation and the text command execution.
    assigns a score to each document that contains the search term in the indexed fields. The score determines the relevance of a document to a given search query.
    

    $text operator dapat mencari kata dan frasa. Kueri cocok dengan kata-kata bertangkai lengkap. Misalnya, jika bidang dokumen berisi kata blueberry, pencarian pada istilah biru tidak akan cocok dengan dokumen tersebut. Namun, pencarian pada blueberry atau blueberry akan cocok.

  • $regex pencarian dapat digunakan dengan indeks reguler pada bidang string, untuk menyediakan beberapa pencocokan pola dan pencarian wildcard. Bukan pengguna indeks yang sangat efektif tetapi akan menggunakan indeks di mana ia dapat:

    Jika ada indeks untuk bidang tersebut, maka MongoDB mencocokkan ekspresi reguler dengan nilai dalam indeks, yang bisa lebih cepat daripada pemindaian koleksi. Optimalisasi lebih lanjut dapat terjadi jika ekspresi reguler adalah "ekspresi awalan", yang berarti bahwa semua potensi pencocokan dimulai dengan string yang sama. Hal ini memungkinkan MongoDB untuk membuat "rentang" dari awalan itu dan hanya cocok dengan nilai-nilai dari indeks yang termasuk dalam rentang itu.

http://docs.mongodb.org/manual/core/index-text/

http://docs.mongodb.org/manual/reference/operator/query/regex/



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $keDesimal

  2. MongoDB:Kunci Unik dalam Dokumen Tersemat

  3. Agregat Mongodb:konversikan tanggal ke zona waktu lain

  4. Mengotomatiskan MongoDB dengan SaltStack

  5. Pencarian Ekspresi Reguler MongoDB - Dimulai dengan menggunakan driver javascript dan NodeJS