Quando vediamo materiale che impiega frasi o parole chiave, il miglior esempio è una ricerca su Google. Con la ricerca a full-text di MongoDB, possiamo stabilire un indice di testo su qualsiasi colonna in un documento usando una stringa o array di stringhe.
Sintassi della ricerca full-text in MongoDB in Ubuntu 20.04 ?
La sintassi menzionata è la seguente:
db.Collection_name.find ($ text: $ Search: “String”)
La funzione Find () viene utilizzata con i seguenti parametri nella sintassi sopra:
Lavorando sull'operatore $ text in MongoDB in Ubuntu 20.04:
Gli elenchi di testo sono forniti da MongoDB per aiutare le ricerche di testo sul contenuto della stringa. Qualsiasi campo con un valore di stringa o una gamma di componenti stringa può essere incluso nei record di testo. Dovresti avere un record di testo nella tua raccolta per fare domande di ricerca di testo. Anche una raccolta ha solo un record di ricerca di argomenti. Un elenco può coprire più campi.
Come si comporta la ricerca full-text in MongoDB in Ubuntu 20.04
Ora, guarda alcuni esempi per comprendere meglio le cose. Innanzitutto, abbiamo creato un database con il nome "Mydemo". All'interno di questo database, abbiamo definito una raccolta come "frutti". Quindi, la query InsertMany viene utilizzata per inserire il documento di raccolta poiché lo screenshot sta visualizzando i campi e i valori contro questi campi per il documento di raccolta "frutti" di seguito.
La query “db.frutta.Trova () "i risultati negli attributi e nelle entità della raccolta" frutti "come segue. Abbiamo tre documenti registrati per la raccolta di "frutti".
Ora, esaminiamo come possiamo eseguire una ricerca full-text.
Esempio n. 1: creazione dell'indice di testo in MongoDB in Ubuntu 20.04:
Dobbiamo stabilire un indice di testo su un set di dati prima di poter utilizzare le funzionalità di ricerca intera di MongoDB. Gli indici sono strutture di dati uniche che isolano un dato limitato da ciascun testo in una raccolta dai documenti stessi. Diamo un'occhiata a come eseguire una ricerca full-text.
Un indice di testo è integrato allo stesso modo di un indice convenzionale, invece di definire un ordine ascendente/discendente, definisce la parola chiave di testo.
Sopra, abbiamo una query per una ricerca full-text. Abbiamo usato il metodo createIndex () per creare un indice di testo. Impostamo i due campi "soggetto" e "contenuto" sul testo di tipo indice.
Eseguendo la query CreateIndex sulla shell MongoDB, la seguente uscita conferma la creazione dell'indice:
Esempio n. 2: cerca una parola o una frase dal testo completo in MongoDB in Ubuntu 20.04:
Cercare documenti che comprendono una o più parole singole è forse la sfida di ricerca più diffusa. Gli utenti probabilmente si aspettano che il browser Web sia adattabile a scegliere dove dovrebbero essere visualizzate le frasi di ricerca particolari. Quando si utilizzano indici di testo, MongoDB si avvicina alle domande di ricerca comuni allo stesso modo. Con alcuni esempi, questo passaggio spiega come MongoDB elabora le richieste di ricerca.
Qui, abbiamo una domanda “DB.frutta.Trovare()". La query impiega l'operatore $ text, che informa MongoDB qui che la query utilizzerà l'indice di testo che abbiamo precedentemente definito. Inoltre, in ogni raccolta è consentito un solo indice di testo. Quindi, all'interno dell'operatore $ text abbiamo un altro operatore chiamato $ Search che viene utilizzato per cercare il valore "dolce" dai documenti indicati.
Come puoi vedere, abbiamo un solo documento con il contenuto di testo "dolce". Eseguindo la query sopra, gli interi dettagli del documento con contenuto di testo "dolci" vengono visualizzati come segue:
Ora stiamo cercando due parole usando la seguente query:
Abbiamo dato la "vitamina C" di due parole all'operatore di ricerca $ che viene chiamato all'interno dell'operatore $ text. Quando viene eseguita la query, mostra il record del documento che ha la vitamina C elencata nel testo come segue:
Esempio n. 3: punteggio e ordinamento dei risultati di ricerca full-text in MongoDB in Ubuntu 20.04:
Ogni documento riceve un punteggio dalla ricerca di testo che indica quanto sia rilevante per la query di ricerca. Questo punteggio viene utilizzato per classificare tutti i record in un risultato di ricerca. Un punteggio più alto significa che il concorso è più significativo.
Abbiamo un operatore di $ text che cerca le due parole "mango" e "arancione" con l'aiuto di un operatore di ricerca $. Quindi, abbiamo una proiezione punteggio: $ meta: "textscore" che utilizza l'operatore $ meta, che restituisce metadati specificati dai documenti recuperati. I metadati di TextScore, che è un componente incorporato del motore di ricerca a full-text di MongoDB e detiene il punteggio di rilevanza di ricerca, viene restituito in questo caso.
Come menzionato nel documento Filtro, i documenti risultanti aggiungeranno un nuovo campo denominato dopo aver eseguito la query:
Ora, abbiamo usato la funzione di ordinamento per la proiezione punteggio: $ meta: "textscore". Il documento di ordinamento utilizza la stessa sintassi del documento di proiezione.
Il mango del testo ha il punteggio più grande per la rilevanza, quindi arriva prima nella schermata di output.
Conclusione:
Abbiamo acquisito come utilizzare le funzionalità di ricerca a full-text di MongoDB seguendo questo tutorial. Hai costruito un indice di testo e query di ricerca di testo composte che includevano una e molte parole, intere frasi ed esclusioni. Hai anche valutato la rilevanza dei documenti restituiti e hai ordinato ai risultati della ricerca di visualizzare prima gli elementi più rilevanti.