MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB Ricerca di testo completo e parziale

Come in MongoDB 3.4, la funzione di ricerca del testo è progettata per supportare ricerche senza distinzione tra maiuscole e minuscole sul contenuto del testo con regole specifiche della lingua per stopword e stemming. Le regole di stemming per le lingue supportate si basano su algoritmi standard che generalmente gestiscono verbi e nomi comuni ma non sono a conoscenza dei nomi propri.

Non esiste un supporto esplicito per corrispondenze parziali o fuzzy, ma i termini che derivano da un risultato simile possono sembrare che funzionino come tali. Ad esempio:"gusto", "gusto" e buon gusto" derivano tutti da "gusto". Prova la pagina Demo Snowball Stemming per sperimentare più parole e algoritmi di stemming.

I risultati che corrispondono sono tutte variazioni sulla stessa parola "LEONEL" e variano solo per caso e segno diacritico. A meno che "LEONEL" non possa essere derivato da qualcosa di più breve dalle regole della lingua selezionata, questi sono l'unico tipo di variazioni che corrisponderanno.

Se vuoi fare corrispondenze parziali efficienti dovrai adottare un approccio diverso. Per alcune idee utili, vedere:

  • Tecniche efficienti per la corrispondenza fuzzy e parziale in MongoDB di John Page
  • Ricerche parziali efficienti per parole chiave di James Tan

C'è una richiesta di miglioramento pertinente che puoi guardare/upvotare nel tracker dei problemi di MongoDB:SERVER-15090:Migliora gli indici di testo per supportare la corrispondenza parziale delle parole.