sql >> Database >  >> NoSQL >> MongoDB

MongoDB Volledige en gedeeltelijke tekstzoekopdracht

Net als bij MongoDB 3.4, is de tekstzoekfunctie ontworpen om hoofdletterongevoelige zoekopdrachten op tekstinhoud te ondersteunen met taalspecifieke regels voor stopwoorden en stemming. Stemming-regels voor ondersteunde talen zijn gebaseerd op standaardalgoritmen die over het algemeen veelvoorkomende werkwoorden en zelfstandige naamwoorden verwerken, maar geen eigennamen kennen.

Er is geen expliciete ondersteuning voor gedeeltelijke of vage overeenkomsten, maar termen die tot een vergelijkbaar resultaat leiden, kunnen als zodanig lijken te werken. Bijvoorbeeld:"smaak", "smaakt" en "smaakvol" komen allemaal voort uit "smaken". Probeer de Snowball Stemming Demo-pagina om te experimenteren met meer woorden en stemalgoritmen.

Uw resultaten die overeenkomen, zijn allemaal variaties op hetzelfde woord "LEONEL", en verschillen alleen per hoofdletter en diakritische tekens. Tenzij "LEONEL" kan worden afgeleid naar iets korters door de regels van uw geselecteerde taal, zijn dit het enige type variaties dat zal overeenkomen.

Als je efficiënte gedeeltelijke matches wilt maken, moet je een andere aanpak kiezen. Zie voor enkele nuttige ideeën:

  • Efficiënte technieken voor vage en gedeeltelijke matching in MongoDB door John Page
  • Efficiënte zoekopdrachten op gedeeltelijke trefwoorden door James Tan

Er is een relevant verbeteringsverzoek dat u kunt bekijken/opstemmen in de MongoDB-probleemtracker:SERVER-15090:Verbeter tekstindexen om gedeeltelijke woordovereenkomst te ondersteunen.



  1. Hoe gaat MongoDB om met gelijktijdige updates?

  2. Hoe werk ik een Mongo-document bij nadat ik het heb ingevoegd?

  3. Redis pub/sub op rails

  4. MongoDB:unieke sleutel in ingesloten document