sql >> Database >  >> NoSQL >> MongoDB

MongoDB full-text zoekindex:fout:te veel tekstindex voor, waarom?

MongoDB staat slechts één tekstindex per verzameling toe.

Maar u kunt een tekstindex gebruiken die meerdere velden omspant:

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

Op die manier krijgt u resultaten wanneer de zin waarnaar u zoekt, in een van beide wordt gevonden. Als dit niet is wat je wilt, zoals wanneer je twee zoekopdrachten hebt die elk resultaten opleveren van een van de velden, maar niet van de andere, heb je twee opties.

  1. gebruik een tekstindex met meerdere velden, maar negeer de resultaten die uit het verkeerde veld op de applicatielaag komen.
  2. extraheer een van de twee velden naar een andere verzameling. De documenten in die verzameling kunnen ofwel volledige kopieën, geredigeerde kopieën bevatten of alleen het veld dat u indexeert en de _id van het originele document.


  1. MongoRepository implementeren/overschrijven HATEOAS-opmaak behouden

  2. Browser vernieuwen met OnBeforeUnload-gebeurtenis

  3. Hoe een string met accenten in redis op te slaan en op te halen?

  4. Hoe zeg je... match wanneer veld een getal is... in mongodb?