sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb ungefärlig strängmatchning

textsökning funktion i MongoDB (som vid 2.6) har inga inbyggda funktioner för fuzzy/partiell strängmatchning. Som du har noterat fokuserar användningsfallet för närvarande på språk- och härkomststöd med grundläggande booleska operatorer och ord/frasmatchning.

Det finns flera möjliga tillvägagångssätt att överväga för otydlig matchning beroende på dina krav och hur du vill kvalificera dig "effektiv" (hastighet, lagring, utvecklartid, infrastruktur krävs, etc):

  • Implementera stöd för otydlig/partiell matchning i din applikationslogik med hjälp av några av de lätt tillgängliga soundalike- och likhetsalgoritmerna. Fördelarna med detta tillvägagångssätt inkluderar att inte behöva lägga till någon extra infrastruktur och att noggrant kunna anpassa matchningen till dina krav.

    För några mer detaljerade exempel, se:Efficient Tekniker för fuzzy och partiell matchning i MongoDB .

  • Integrera med ett externt sökverktyg som ger mer avancerade sökfunktioner. Detta lägger till en viss komplexitet till din implementering och är sannolikt överdriven bara för att skriva i förväg, men du kan hitta andra sökfunktioner som du skulle vilja införliva någon annanstans i din applikation (t.ex. "så här", ordnärhet, facetterad sökning, ..).

    Se till exempel:Hur man presterar Fuzzy-Matching med Mongo Connector och Elastic Search . Obs! ElasticSearchs fuzzy query baseras på Levenshteins avstånd.

  • Använd ett autokompletterande bibliotek som Twitters öppen källkod typeahead.js , som inkluderar en förslagsmotor och query/caching API. Typeahead är faktiskt ett komplement till någon av de andra backend-metoderna, och dess (valfria) förslagsmotor Bloodhound stöder förhämtning samt cachelagring av data i lokal lagring.




  1. Mongodb aggregeringsfråga för att subtrahera och gruppera kumulativt värde

  2. Hur utvärderar MongoDB flera $eller uttalanden?

  3. Installerar play framework mongodb morphia modul

  4. Hur tar man bort en gammal version av mongodb och installerar den nya i cloud9 IDE?