MongoDB - Tekst Search

Fra versjon 2.4, begynte MongoDB støtter tekstindekser for å søke i streng innhold. Tekst Søk
anvendelser som stammer teknikker for å lete etter angitte ordene i strengen felt ved å slippe stammer stoppord som en, en, det, etc. I dag støtter MongoDB rundt 15 språk.

Aktivering Tekst Søk:

I utgangspunktet tekstsøk var en eksperimentell funksjon, men fra versjon 2.6, er konfigurasjon aktivert som standard. Men hvis du bruker tidligere versjoner av MongoDB, må du aktivere tekstsøk med følgende kode:
> db.adminCommand ({setParameter: true, textSearchEnabled: true})
Opprette Tekst indeks:

Tenk deg følgende dokumentet under innlegg
samling som inneholder innlegget tekst og dets tags: product: {"post_text": "nyte mongodb artiklene på tutorialspoint", "tags": ["mongodb", "tutorialspoint "]}

Vi vil skape en tekst indeks på post_text feltet, slik at vi kan søke i våre innlegg 'tekst:
> db.posts.ensureIndex ({post_text:" tekst "})
Bruke Tekst Index :

Nå som vi har laget teksten indeksen på post_text feltet, vil vi søke etter alle innleggene som har ordet tutorialspoint
i sin tekst
> db.posts.find (. {$ tekst: {$ søkeordet: "tutorialspoint"}})

Kommandoen ovenfor returnerte følgende resultatdokumenter har tutorialspoint ord i sine innlegg tekst: product: {"_id": objectID ("53493d14d852429c10000002"), "post_text ":" nyte mongodb artikler om tutorialspoint "," tags ": [" mongodb "," tutorialspoint "]} {" _id ": objectID (" 53493d1fd852429c10000003 ")," post_text ":" skriver tutorials på mongodb "," tags ": [" mongodb "," tutorial "]}

Hvis du bruker gamle versjoner av MongoDB, må du bruke følgende kommando:
> db.posts.runCommand (" tekst ", {søkeordet:" tutorialspoint "})

Ved hjelp av tekstsøk sterkt forbedrer søke effektivitet i forhold til vanlig søk.

Slette Tekst indeks:

For å slette en eksisterende tekstindeks, først finne navnet på indeksen bruker følgende spørring:
> db.posts.getIndexes ()

Etter å ha fått Navnet på peke ovenfra spørring, kjører du følgende kommando. Her post_text_text
er navnet på indeksen.
> Db.posts.dropIndex ("post_text_text")