Zoekresultaten efficiënt beheren is een hoeksteen van elk robuust documentophaalsysteem, en begrijpen hoe u deze resultaten moet interpreteren en gebruiken kan datagestuurde besluitvorming aanzienlijk verbeteren. In deze gids onderzoeken we hoe u met zoekresultaten kunt werken met C#. Van het opzetten van een indexrepository tot het configureren van fuzzy-zoekopties, deze tutorial biedt een duidelijke en praktische aanpak voor het verwerken van zoekopdrachten en hun resultaten. Of u nu matches voor enkele termen of complexe zinnen moet analyseren, deze methode stelt u in staat om resultaten uitgebreid te verwerken en zinvolle patronen te ontdekken. Aan het einde weet u zeker hoe u zoekresultaten in C# kunt ophalen en deze kunt gebruiken voor diverse toepassingen.
Stappen om met zoekresultaten te werken met C#
- Neem de bibliotheek GroupDocs.Search for .NET op in uw project om met zoekresultaten te werken
- Maak een indexobject met behulp van de klasse Index en geef een mappad op waar de index wordt opgeslagen
- Gebruik de Index.Add-methode om documenten uit de opgegeven map aan de index toe te voegen
- Maak een instantie van SearchOptions en schakel fuzzy search in door FuzzySearch.Enabled in te stellen op true
- Definieer het maximale aantal toegestane verschillen (bijv. 3) met behulp van FuzzyAlgorithm
- Gebruik de Index.Search-methode om te zoeken naar documenten die bepaalde termen of zinnen bevatten, samen met de geconfigureerde zoekopties
- Geef het aantal gevonden documenten (DocumentCount) en het totale aantal keren dat de zoektermen voorkomen (OccurrenceCount) weer
- Loop door de documenten in de zoekresultaten met behulp van de GetFoundDocument-methode. Geef voor elk document het bestandspad en het aantal keren dat het voorkomt weer
- Loop voor elk document door de FoundFields om details weer te geven, zoals de veldnaam, het aantal keren dat het voorkomt, de gevonden termen en de gevonden woordgroepen
Om effectief met zoekresultaten te werken, moet u eerst een indexrepository voor uw documenten instellen. Met behulp van het meegeleverde codefragment wordt een index gemaakt in een opgegeven map en worden documenten uit een andere map hieraan toegevoegd. Zoekopties worden vervolgens geconfigureerd om fuzzy search in te schakelen, wat flexibele matching met een maximale verschildrempel mogelijk maakt. Deze instelling vergemakkelijkt het zoeken naar termen zoals Einstein of zinnen zoals Relativiteitstheorie met behulp van geavanceerde algoritmen. Zodra de zoekopdracht is uitgevoerd, worden de resultaten geopend via het SearchResult-object. Het totale aantal documenten dat aan de query voldoet en hun aantal keren dat ze voorkomen, worden weergegeven. Gedetailleerde informatie over elk document wordt opgehaald, inclusief het bestandspad en het aantal keren dat termen en zinnen voorkomen. Door door de gevonden velden in elk document te itereren, kunt u specifieke velden identificeren die de matches bevatten en termen en zinnen analyseren met hun respectievelijke frequenties. Deze stap laat zien hoe u indexzoekresultaten opent met C#, wat een gestructureerd overzicht biedt van de opgehaalde gegevens.
Code om met zoekresultaten te werken met behulp van C#
using GroupDocs.Search; | |
using GroupDocs.Search.Options; | |
using GroupDocs.Search.Results; | |
using System; | |
namespace WorkwithSearchResultsUsingCSharp | |
{ | |
internal class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License lic = new License(); | |
lic.SetLicense(@"GroupDocs.Search.lic"); | |
string indexFolder = @"d:\MyIndex\"; | |
string documentsFolder = @"d:\MyDocuments\"; | |
// Creating an index | |
Index index = new Index(indexFolder); | |
// Indexing documents from the specified folder | |
index.Add(documentsFolder); | |
// Creating search options | |
SearchOptions options = new SearchOptions(); | |
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search | |
options.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(3); // Setting the maximum number of differences to 3 | |
// Search for documents containing the word 'Einstein' or the phrase 'Theory of Relativity' | |
SearchResult result = index.Search("Einstein OR \"Theory of Relativity\"", options); | |
// Printing the result | |
Console.WriteLine("Documents: " + result.DocumentCount); | |
Console.WriteLine("Total occurrences: " + result.OccurrenceCount); | |
for (int i = 0; i < result.DocumentCount; i++) | |
{ | |
FoundDocument document = result.GetFoundDocument(i); | |
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath); | |
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount); | |
for (int j = 0; j < document.FoundFields.Length; j++) | |
{ | |
FoundDocumentField field = document.FoundFields[j]; | |
Console.WriteLine("\t\tField: " + field.FieldName); | |
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount); | |
// Printing found terms | |
if (field.Terms != null) | |
{ | |
for (int k = 0; k < field.Terms.Length; k++) | |
{ | |
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]); | |
} | |
} | |
// Printing found phrases | |
if (field.TermSequences != null) | |
{ | |
for (int k = 0; k < field.TermSequences.Length; k++) | |
{ | |
string sequence = string.Join(" ", field.TermSequences[k]); | |
Console.WriteLine("\t\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]); | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Het effectief beheren en interpreteren van zoekresultaten is cruciaal voor het maximaliseren van de waarde van geïndexeerde data. Dit proces omvat niet alleen het ophalen van documenten, maar ook het diep duiken in termvoorkomens, veldspecifieke matches en zinsdeelreeksen. De gedemonstreerde methode stelt u in staat om resultaten op een gestructureerde en gedetailleerde manier te analyseren, wat geavanceerde data-inzichten mogelijk maakt. Bovendien zorgt de platformonafhankelijkheid van de bibliotheek voor naadloze integratie in verschillende systemen en omgevingen, wat het een veelzijdige keuze maakt voor zoekgerelateerde taken. Door deze aanpak onder de knie te krijgen, kunt u efficiënt zoekresultaten in C# verwerken en deze toepassen op een breed scala aan scenario’s, van data-analyse tot realtime documentopvraging.
Eerder deelden we een uitgebreide handleiding over het maken van zoekrapporten met C#. Voor een complete stapsgewijze walkthrough, bekijk dan zeker ons gedetailleerde artikel over hoe u zoekrapport maken met behulp van C# kunt gebruiken.