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

Vollständige und teilweise Textsuche in MongoDB

Wie bei MongoDB 3.4 ist die Textsuchfunktion so konzipiert, dass sie die Suche nach Textinhalten ohne Berücksichtigung der Groß- und Kleinschreibung mit sprachspezifischen Regeln für Stoppwörter und Wortstamm unterstützt. Stemming-Regeln für unterstützte Sprachen basieren auf Standardalgorithmen, die allgemein gebräuchliche Verben und Substantive handhaben, aber keine Eigennamen kennen.

Es gibt keine explizite Unterstützung für teilweise oder unscharfe Übereinstimmungen, aber Begriffe, die auf ein ähnliches Ergebnis zurückzuführen sind, scheinen möglicherweise so zu funktionieren. Zum Beispiel:„taste“, „tastes“ und tasteful“ stammen alle von „tast“. Probieren Sie die Snowball Stemming Demoseite aus, um mit weiteren Wörtern und Stemming-Algorithmen zu experimentieren.

Ihre übereinstimmenden Ergebnisse sind alle Variationen desselben Wortes "LEONEL" und variieren nur durch Groß- und Kleinschreibung und diakritische Zeichen. Sofern "LEONEL" nicht durch die Regeln Ihrer ausgewählten Sprache auf etwas Kürzeres gekürzt werden kann, sind dies die einzigen Variationstypen, die übereinstimmen.

Wenn Sie effiziente Teilübereinstimmungen durchführen möchten, müssen Sie einen anderen Ansatz wählen. Einige hilfreiche Ideen finden Sie unter:

  • Effiziente Techniken für Fuzzy- und Partial-Matching in MongoDB von John Page
  • Effiziente partielle Schlüsselwortsuche von James Tan

Es gibt eine relevante Verbesserungsanfrage, die Sie im MongoDB Issue Tracker beobachten/aufwerten können:SERVER-15090:Improve Text Indexes to support partial word match.