MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Volltextsuchindex:Fehler:zu viel Textindex für, warum?

MongoDB erlaubt nur einen Textindex pro Sammlung.

Aber Sie können einen Textindex verwenden, der sich über mehrere Felder erstreckt:

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

Auf diese Weise erhalten Sie Ergebnisse, wenn der gesuchte Ausdruck in beiden gefunden wird. Wenn Sie dies nicht möchten, z. B. wenn Sie zwei Suchanfragen haben, die jeweils Ergebnisse aus einem der Felder zurückgeben, aber nicht aus dem anderen, haben Sie zwei Möglichkeiten.

  1. Verwenden Sie einen Textindex mit mehreren Feldern, aber verwerfen Sie die Ergebnisse, die aus dem falschen Feld auf der Anwendungsschicht stammen.
  2. eines der beiden Felder in eine andere Sammlung extrahieren. Die Dokumente in dieser Sammlung können entweder vollständige Kopien, redigierte Kopien oder nur das von Ihnen indexierte Feld und die _id enthalten des Originaldokuments.