Fuzzy Search C#

In der heutigen Welt unstrukturierter Daten und inkonsistenter Benutzereingaben reichen exakte Übereinstimmungen bei Suchoperationen oft nicht aus. Egal, ob Sie an einem Dokumentenmanagementsystem, einem Inhaltsanalysetool oder einer Unternehmenssuchmaschine arbeiten, die Implementierung von Fuzzy-Suche ermöglicht es Ihnen, relevante Ergebnisse abzurufen, selbst wenn die Suchanfrage Tippfehler, Schreibvariationen oder geringfügige Unterschiede enthält. In diesem Blogbeitrag werden wir untersuchen, wie man Fuzzy-Suche in C# unter Verwendung von Conholdate.Total für .NET SDK implementiert. Sie lernen, wie man über mehrere Dateien, die in verschiedenen Ordnern gespeichert sind, mit anpassbaren Ähnlichkeitsleveln für mehr Genauigkeit und Flexibilität sucht.

Warum Fuzzy-Suche verwenden?

Fuzzy-Suche ist eine wesentliche Funktion für jede moderne Anwendung, die benutzergenerierte Inhalte verarbeitet oder mit unterschiedlichen Textquellen arbeitet. Im Gegensatz zur genauen Suche, die nur Ergebnisse zurückgibt, die exakt mit der Anfrage übereinstimmen, ruft die Fuzzy-Suche Dokumente ab, die basierend auf einem definierten Ähnlichkeitsgrad nahe genug an der Suchanfrage liegen. Dieser Ansatz verbessert das Benutzererlebnis erheblich, indem er Tippfehler, Rechtschreibabweichungen oder leichte sprachliche Variationen berücksichtigt.

Zum Beispiel in einem Szenario, in dem Benutzer nach dem Wort reciept anstelle von receipt suchen, würde eine exakte Suche fehlschlagen, während eine unscharfe Suche dennoch relevante Ergebnisse liefern würde. Dies ist besonders nützlich in Bereichen wie der Abruf von juristischen Dokumenten, akademischer Forschung und Unternehmensdatenanalyse, wo sowohl Präzision als auch Flexibilität entscheidend sind.

Fuzzy Search - .NET Konfiguration

Sie müssen Conholdate.Total for .NET mit dem folgenden NuGet-Installationsbefehl installieren:

Install-Package Conholdate.Total

Fuzzy-Suche über mehrere Dateien und Ordner in C#

Sie können unscharfe Suchen über eine große Menge von Dokumenten durchführen, die in verschiedenen Ordnern gespeichert sind. Sie können ähnliche Ebenen einfach konfigurieren und die Struktur für das Indizieren und Suchen festlegen.

// Creating an index folder and add document's folder to it
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search
options.FuzzySearch.FuzzyAlgorithm = new SimilarityLevel(0.7);

string query = "nulla"; // search approximate matches of the provided query  
SearchResult result = index.Search(query, options);

In diesem Codeausschnitt:

  • Ein neuer Index wird erstellt, der auf das Verzeichnis zeigt, das für die Indizierung verwendet wird.

  • Ein übergeordnetes Verzeichnis, das alle Dokumente enthält, wird diesem Index hinzugefügt.

  • Fuzzy-Suche ist über die Klasse SearchOptions aktiviert.

  • Der SimilarityLevel ist auf 0,7 eingestellt, was einem 70%igen Übereinstimmungsgrad oder 30% Fehlertoleranz entspricht.

  • Die Suchanfrage “nulla” wird übergeben, und das System ruft Ergebnisse ab, die den Ähnlichkeitsschwellenwert erfüllen.

Sie können den Ähnlichkeitsgrad anpassen, je nachdem, wie streng oder nachsichtig Sie Ihre Suchergebnisse gestalten möchten. Ein niedriger Schwellenwert ermöglicht mehr Flexibilität, während ein höherer Schwellenwert eine genauere Übereinstimmung gewährleistet.

Vorteile des anpassbaren Ähnlichkeitsniveaus

Eine der herausragenden Funktionen des Conholdate.Total für .NET SDK ist die Möglichkeit, den Ähnlichkeitsschwellenwert für unscharfe Suchen zu steuern. Dieses Maß an Anpassung bietet eine präzise Kontrolle über den Matching-Prozess und stellt sicher, dass die Ergebnisse sowohl relevant als auch zuverlässig sind.

Höhere Ähnlichkeit (z.B. 0,9): Verwenden Sie dies, wenn Präzision entscheidend ist und Sie Ergebnisse wünschen, die sehr nah an der ursprünglichen Anfrage sind.

Niedrigere Ähnlichkeit (z. B. 0,6): Geeignet für explorative Suchen oder wenn Benutzer Daten mit häufigen Fehlern eingeben.

Die Möglichkeit, diesen Wert programmgesteuert zu ändern, gibt Entwicklern die Flexibilität, sich an verschiedene geschäftliche Anwendungsfälle anzupassen, ohne das gesamte System neu indizieren oder neu konfigurieren zu müssen.

Kostenlose Evaluierungs-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Testbeschränkungen des SDK zu umgehen und es in vollem Umfang testen zu können.

Fazit

Fuzzy search ist eine kritische Funktion für Anwendungen, die smarte, tolerante und benutzerfreundliche Suchmöglichkeiten bieten müssen. Durch die Verwendung von Conholdate.Total für .NET SDK können Entwickler leistungsstarke Fuzzy-Suchfunktionen in ihre C#-Anwendungen mit minimalem Aufwand integrieren. Egal, ob Sie durch Tausende von juristischen Dokumenten suchen oder durch nutzergenerierte Inhalte scannen, dieses SDK bietet die Werkzeuge, um dies mit Präzision und Flexibilität zu handhaben. Passen Sie die Ähnlichkeitsstufen an, suchen Sie in Ordnern und rufen Sie die relevantesten Ergebnisse ab, selbst wenn die Eingabe nicht perfekt ist.

Siehe auch