sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB hel och partiell textsökning

Liksom i MongoDB 3.4 är textsökningsfunktionen utformad för att stödja skiftlägesokänsliga sökningar på textinnehåll med språkspecifika regler för stoppord och stemming. Stamregler för språk som stöds är baserade på standardalgoritmer som vanligtvis hanterar vanliga verb och substantiv men är omedvetna om egennamn.

Det finns inget uttryckligt stöd för partiella eller otydliga matchningar, men termer som härrör från ett liknande resultat kan tyckas fungera som sådana. Till exempel:"smak", "smakar" och smakfullt" härstammar alla till "smak". Testa Snowball Stemming Demo-sidan för att experimentera med fler ord och härstammande algoritmer.

Dina resultat som matchar är alla varianter av samma ord "LEONEL", och varierar endast med skiftläge och diakritiska tecken. Om inte "LEONEL" kan härledas till något kortare av reglerna för ditt valda språk, är dessa den enda typen av varianter som matchar.

Om du vill göra effektiva delmatchningar måste du ta ett annat tillvägagångssätt. För några användbara idéer se:

  • Effektiva tekniker för otydlig och partiell matchning i MongoDB av John Page
  • Effektiva partiella sökordssökningar av James Tan

Det finns en relevant förbättringsbegäran som du kan se/rösta upp i MongoDB-problemspåraren:SERVER-15090:Förbättra textindex för att stödja partiell ordmatchning.



  1. Mongoose find() RegExp för fältet nummertyp

  2. Hur söker jag efter strängar i redis?

  3. Exportera en MongoDB-samling till en CSV-fil

  4. MongoDB:uppdatera varje dokument på ett fält