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

Indice di ricerca full-text di MongoDB:errore:troppi indici di testo per, perché?

MongoDB consente un solo indice di testo per raccolta.

Ma puoi usare un indice di testo che si estende su più campi:

db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );

In questo modo otterrai risultati quando la frase che stai cercando si trova in entrambi. Quando questo non è quello che vuoi, come quando hai due query di ricerca che restituiscono risultati da uno dei campi ma non dall'altro, hai due opzioni.

  1. usa un indice di testo multicampo, ma elimina i risultati che provengono dal campo sbagliato nel livello dell'applicazione.
  2. estrai uno dei due campi in una raccolta diversa. I documenti in quella raccolta potrebbero contenere copie complete, copie redatte o solo il campo che indicizzi e il _id del documento originale.