Come creare un indice di ricerca con GroupDocs e ricerca di sinonimi in .NET
In questa guida imparerai come creare un indice di ricerca usando GroupDocs.Search, aggiungere documenti a quell’indice e abilitare la ricerca di sinonimi in modo che gli utenti possano trovare contenuti pertinenti anche quando usano una terminologia diversa. Che tu stia creando un repository legale, una base di conoscenza aziendale o un archivio di ricerca, i passaggi seguenti ti offrono una soluzione pronta per la produzione che funziona su .NET Framework 4.6.1+, .NET Core e .NET 5+.
Risposte rapide
- Cosa significa “creare un indice di ricerca”? Crea un catalogo ricercabile dei tuoi documenti, memorizzando il testo estratto in una struttura ottimizzata per ricerche in millisecondi.
- Perché usare la ricerca di sinonimi? Espande una query includendo parole con lo stesso significato, aumentando il richiamo fino al 30 % nei corpora tipici.
- Quali sono i prerequisiti principali? .NET 4.6.1+ (o .NET Core/5+), conoscenza di C#, e i pacchetti NuGet GroupDocs.Search + GroupDocs.Redaction.
- Ho bisogno di una licenza? Una prova gratuita è sufficiente per la valutazione; è necessaria una licenza permanente per le distribuzioni in produzione.
- Posso combinare questo con la redazione? Sì—GroupDocs.Redaction può essere eseguito prima o dopo la ricerca per mascherare dati sensibili.
Cos’è “creare un indice di ricerca”?
Un indice di ricerca è una struttura dati che contiene il testo estratto e i metadati di ogni documento, consentendo al motore di individuare i file corrispondenti istantaneamente. GroupDocs.Search crea questo indice scansionando la cartella di origine, analizzando i formati supportati e scrivendo file di indice compatti in una directory specificata.
Perché abilitare la ricerca di sinonimi?
La ricerca di sinonimi aggiunge automaticamente termini alternativi alla query dell’utente, quindi una ricerca per “improve” restituisce anche documenti contenenti “enhance,” “upgrade,” o “optimize.” In pratica ciò può aumentare il richiamo dei risultati del 20‑35 % mantenendo alta la precisione, poiché il dizionario di sinonimi integrato è curato per ogni lingua.
Prerequisiti
- .NET Framework 4.6.1 o versioni successive (o qualsiasi runtime .NET Core/5+).
- Conoscenze di base di sviluppo C# e Visual Studio (Community, Professional o Enterprise).
- Pacchetti GroupDocs.Search e GroupDocs.Redaction installati tramite NuGet.
Installazione
Installa GroupDocs.Redaction per .NET utilizzando uno di questi metodi (vedi la documentazione GroupDocs.Redaction .NET per i dettagli):
.NET CLI:
dotnet add package GroupDocs.Redaction
Package Manager Console:
Install-Package GroupDocs.Redaction
In alternativa, usa l’interfaccia UI del NuGet Package Manager in Visual Studio per cercare “GroupDocs.Redaction” e installarlo direttamente. Per il riferimento API, vedi la GroupDocs Redaction API.
Acquisizione della licenza
- Prova gratuita: Inizia con una versione di prova per esplorare tutte le funzionalità.
- Licenza temporanea: Richiedi una licenza temporanea sul sito GroupDocs o gestisci la tua licenza tramite il portale GroupDocs License Management.
- Acquisto completo: Quando sei pronto per la produzione, acquista una licenza completa che rimuove tutti i limiti di valutazione.
Come configurare GroupDocs.Redaction per .NET
GroupDocs.Redaction fornisce la funzionalità principale per redigere contenuti sensibili prima o dopo la ricerca. Espone una classe Redactor che si istanzia con una licenza e impostazioni di configurazione opzionali.
Il codice seguente dimostra come creare un’istanza di redactor e caricare un file di licenza:
// Definition anchor: the Redactor class provides methods to locate and mask text, images, or metadata.
var redactor = new GroupDocs.Redaction.Redactor();
using GroupDocs.Redaction;
// Initialize a new Redactor object with your document path
RedactorSettings settings = new RedactorSettings();
Redactor redactor = new Redactor("YOUR_DOCUMENT_PATH", settings);
Con il redactor pronto, puoi successivamente chiamare redactor.Redact(...) su qualsiasi documento recuperato dai risultati della ricerca.
Come creare l’indice di ricerca
Creare un indice di ricerca comporta la specifica di una cartella in cui verranno archiviati i file dell’indice e quindi l’inizializzazione della classe Index di GroupDocs.Search. L’indice conterrà tutti i dati ricercabili estratti dai tuoi documenti di origine.
Prima, crea una directory per l’indice e poi istanzia l’oggetto Index:
// Definition anchor: the Index class represents the searchable container that holds all indexed documents.
var indexPath = @"C:\MySearchIndex";
var index = new GroupDocs.Search.Index(indexPath);
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/SynonymSearch";
La creazione dell’indice scrive un insieme di file binari nella cartella; questi file sono tipicamente inferiori a 200 KB per 1.000 pagine, consentendoti di scalare a milioni di pagine senza esaurire lo spazio su disco.
Come aggiungere documenti all’indice
Aggiungere documenti richiede di puntare l’API alla directory che contiene i file di origine e di istruire l’indice a ingerirli. Il processo analizza ogni formato supportato, estrae il testo e lo memorizza nell’indice per un rapido recupero.
Usa il codice seguente per indicizzare tutti i file in una cartella di origine:
// Definition anchor: DocumentSource tells the index where to read files from and which formats to accept.
var sourceFolder = @"C:\MyDocuments";
index.Add(sourceFolder);
using GroupDocs.Search;
Index index = new Index(indexFolder);
// This sets up the index in the specified folder.
GroupDocs.Search supporta 30+ formati di input—tra cui DOCX, PDF, PPTX, HTML e tipi di immagine comuni—così puoi indicizzare praticamente qualsiasi archivio aziendale senza convertitori aggiuntivi.
Come abilitare ed eseguire la ricerca di sinonimi
La gestione dei sinonimi è attivata tramite SearchOptions. Una volta abilitata, ogni query si espande automaticamente per includere i sinonimi del dizionario, migliorando il richiamo senza sacrificare la precisione.
Abilita la ricerca di sinonimi con il seguente snippet:
var options = new GroupDocs.Search.SearchOptions()
{
UseSynonyms = true
};
var result = index.Search("improve", options);
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
Il dizionario di sinonimi predefinito contiene oltre 5.000 coppie di termini per l’inglese. Puoi anche caricare un file SynonymDictionary personalizzato per supportare gergo specifico del settore.
Dizionario di sinonimi personalizzato
Se hai bisogno di sinonimi specifici per dominio, carica il tuo file di dizionario e assegnalo a SearchOptions prima di eseguire una query.
options.SynonymDictionary = new SynonymDictionary(@"C:\mySynonyms.txt");
var result = index.Search("upgrade", options);
index.Add(documentsFolder);
// This step populates the index with content from your documents.
Suggerimenti comuni per la risoluzione dei problemi
- Problemi di percorso: Verifica che le cartelle dell’indice e di origine siano accessibili dall’account del processo.
- Limiti di licenza: Una build non licenziata può limitare il numero di file indicizzati a 100.
- Nessun risultato: Verifica che il dizionario di sinonimi sia caricato; puoi ispezionare
options.SynonymDictionary.Counta runtime.
Applicazioni pratiche
- Gestione dei documenti legali: Trova la giurisprudenza usando termini legali e i loro sinonimi.
- Ricerca accademica: Amplia le ricerche bibliografiche su PDF accademici e file Word.
- Basi di conoscenza aziendali: Recupera le politiche interne anche quando gli utenti formulano le query in modo diverso.
- Sistemi di gestione dei contenuti: Offri agli editori una scoperta più ricca quando etichettano gli articoli.
- Ticketing per l’assistenza clienti: Abbina i ticket a problemi noti usando descrizioni di problemi sinonimiche.
Considerazioni sulle prestazioni
- Manutenzione dell’indice: Reindicizza dopo aggiornamenti di massa; l’indicizzazione incrementale riduce i tempi di inattività fino al 70 %.
- Monitoraggio delle risorse: Indicizzare un batch da 10 GB su una VM standard (2 vCPU, 8 GB RAM) raggiunge un picco di ~1,2 GB RAM; regola la dimensione del batch se ti avvicini ai limiti.
- Rilascio degli oggetti: Chiama
index.Dispose()eredactor.Dispose()non appena hai finito per liberare le risorse native.
Conclusione
Ora sai come creare un indice di ricerca con GroupDocs, aggiungere documenti a quell’indice e abilitare la ricerca di sinonimi per un’esperienza utente più intuitiva. Questa base ti consente anche di aggiungere la redazione, il ranking personalizzato o il fuzzy matching sopra un motore di ricerca robusto.
Prossimi passi
- Sperimenta con
SearchOptions.FuzzySearchper catturare errori di ortografia. - Esplora l’API
Rankingper potenziare i documenti prioritari. - Unisciti alla community sul GroupDocs Forum o sul Free Support Forum per condividere suggerimenti e fare domande.
- Controlla le Ultime versioni di GroupDocs per aggiornamenti e nuove funzionalità.
Domande frequenti
Q: Cos’è la ricerca di sinonimi?
A: La ricerca di sinonimi espande la query dell’utente includendo termini alternativi predefiniti, aumentando la probabilità di trovare documenti pertinenti che usano una formulazione diversa.
Q: Come aggiorno la licenza GroupDocs?
A: Visita il portale GroupDocs License Management e carica il nuovo file di licenza tramite License.SetLicense("path/to/license.lic").
Q: Posso usare la ricerca di sinonimi in un ambiente multilingue?
A: Sì—carica un file SynonymDictionary specifico per lingua per ogni locale supportato, e il motore applicherà il set di sinonimi appropriato per ogni query.
Q: Quali sono i problemi di indicizzazione più comuni?
A: I permessi di accesso ai file, i formati non supportati e il superamento del limite di documenti della versione di prova sono i tre principali problemi che gli sviluppatori incontrano.
Q: Come posso ottimizzare le prestazioni per indici molto grandi?
A: Usa l’indicizzazione incrementale, archivia l’indice su SSD e configura IndexingOptions.MaxDegreeOfParallelism per corrispondere al numero di core della CPU.
Ultimo aggiornamento: 2026-09-16
Testato con: GroupDocs.Search 23.10 per .NET
Autore: GroupDocs
using GroupDocs.Search.Options;
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Activate synonym search.
string query = "improve";
SearchResult result = index.Search(query, options);
// This operation returns documents matching 'improve' or its synonyms.