Fuzzy Search C#

Nel mondo odierno di dati non strutturati e input utente inconsistenti, le corrispondenze esatte nelle operazioni di ricerca spesso non soddisfano. Che tu stia lavorando su un sistema di gestione documentale, uno strumento di analisi dei contenuti o un motore di ricerca aziendale, implementare la ricerca fuzzy ti consente di recuperare risultati pertinenti anche quando la query di ricerca presenta errori di battitura, variazioni di ortografia o differenze minori. In questo post del blog, esploreremo come implementare la ricerca fuzzy in C# utilizzando Conholdate.Total per .NET SDK. Imparerai come cercare in più file memorizzati in varie cartelle utilizzando livelli di somiglianza regolabili per una maggiore accuratezza e flessibilità.

Perché utilizzare la ricerca fuzzy?

La ricerca approssimativa è una funzionalità essenziale per qualsiasi applicazione moderna che gestisce contenuti generati dagli utenti o lavora con fonti di testo diverse. A differenza della ricerca esatta, che restituisce solo risultati che corrispondono esattamente alla query, la ricerca approssimativa recupera documenti che sono abbastanza vicini alla query di ricerca in base a un livello di somiglianza definito. Questo approccio migliora significativamente l’esperienza dell’utente tenendo conto di errori di battitura, incoerenze ortografiche o lievi variazioni linguistiche.

Ad esempio, in uno scenario in cui gli utenti cercano la parola “reciept” invece di “receipt”, una ricerca esatta fallirebbe, mentre una ricerca fuzzy restituirebbe comunque risultati pertinenti. Questo è particolarmente utile in ambiti come il recupero di documenti legali, la ricerca accademica e il data mining aziendale, dove sia la precisione che la flessibilità sono entrambe fondamentali.

Fuzzy Search - Configurazione .NET

Devi installare Conholdate.Total for .NET con il seguente comando di installazione NuGet:

Install-Package Conholdate.Total

Ricerca Fuzzy in più File e Cartelle in C#

Puoi eseguire ricerche approssimative su un ampio insieme di documenti memorizzati in diverse cartelle. Puoi facilmente configurare i livelli di somiglianza e definire la struttura per l’indicizzazione e la ricerca.

// 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 this code snippet:

  • Un nuovo indice viene creato che punta alla directory utilizzata per l’indicizzazione.

  • Una cartella principale contenente tutti i documenti è stata aggiunta a questo indice.

  • La ricerca fuzzy è attivata tramite la classe SearchOptions.

  • Il LivelloDiSimilarità è impostato a 0,7, che corrisponde a una corrispondenza del 70% o a una tolleranza all’errore del 30%.

  • La query di ricerca "nulla" viene passata e il sistema recupera risultati che soddisfano la soglia di somiglianza.

Puoi regolare il livello di somiglianza a seconda di quanto rigidi o permissivi desideri che siano i tuoi risultati di ricerca. Un valore soglia più basso consente maggiore flessibilità, mentre un valore soglia più alto garantisce corrispondenze più precise.

Benefici di un Livello di Similarità Personalizzabile

Una delle caratteristiche distintive di Conholdate.Total per .NET SDK è la possibilità di controllare la soglia di somiglianza per la ricerca approssimativa. Questo livello di personalizzazione fornisce un controllo accurato sul processo di corrispondenza, garantendo che i risultati siano sia pertinenti che affidabili.

Similarità Maggiore (ad es., 0,9): Utilizzare quando la precisione è fondamentale e si desidera risultati molto vicini alla query originale.

Bassa Similarità (ad es. 0.6): Adatta per ricerche esplorative o quando gli utenti potrebbero inserire dati con errori frequenti.

Essere in grado di cambiare questo valore programmaticamente offre agli sviluppatori la flessibilità di adattarsi a diverse esigenze aziendali senza la necessità di reindicizzare o riconfigurare l’intero sistema.

Licenza di valutazione gratuita

Puoi ottenere una free temporary license per evitare le limitazioni della prova dell’SDK e poterlo testare a piena capacità.

Conclusione

La ricerca fuzzy è una funzionalità critica per le applicazioni che devono offrire capacità di ricerca intelligenti, tolleranti e user-friendly. Utilizzando Conholdate.Total per .NET SDK, gli sviluppatori possono integrare potenti funzionalità di ricerca fuzzy nelle loro applicazioni C# con minimo sforzo. Che tu stia cercando tra migliaia di documenti legali o scannerizzando contenuti generati dagli utenti, questo SDK fornisce gli strumenti per gestirlo con precisione e flessibilità. Regola i livelli di somiglianza, cerca tra le cartelle e recupera i risultati più pertinenti, anche quando l’input non è perfetto.

Vedi anche