Att hantera sökresultat effektivt är en hörnsten i alla robusta dokumenthämtningssystem, och att förstå hur man tolkar och använder dessa resultat kan avsevärt förbättra datadrivet beslutsfattande. I den här guiden utforskar vi hur du arbetar med sökresultat med C#. Från att skapa ett indexlager till att konfigurera fuzzy sökalternativ, den här handledningen ger ett tydligt och praktiskt tillvägagångssätt för att hantera sökfrågor och deras resultat. Oavsett om du behöver analysera matchningar för enstaka termer eller komplexa fraser, utrustar denna metod dig att bearbeta resultat heltäckande och avslöja meningsfulla mönster. I slutet kommer du att vara säker på hur du hämtar sökresultat i C# och använder dem för olika applikationer.
Steg för att arbeta med sökresultat med C#
- Inkludera GroupDocs.Search for .NET-biblioteket i ditt projekt för att arbeta med sökresultat
- Skapa ett indexobjekt med klassen Index och ange en mappsökväg där indexet ska lagras
- Använd metoden Index.Add för att lägga till dokument från den angivna mappen till indexet
- Skapa en instans av SearchOptions och aktivera fuzzy search genom att ställa in FuzzySearch.Enabled till true
- Definiera det maximala antalet tillåtna skillnader (t.ex. 3) med FuzzyAlgorithm
- Använd metoden Index.Search för att söka efter dokument som innehåller angivna termer eller fraser tillsammans med de konfigurerade sökalternativen
- Skriv ut antalet hittade dokument (DocumentCount) och det totala antalet förekomster av söktermerna (OccurrenceCount)
- Bläddra igenom dokumenten i sökresultaten med metoden GetFoundDocument. För varje dokument, visa dess sökväg och antalet förekomster
- För varje dokument, iterera genom FoundFields för att visa detaljer som fältnamn, antal förekomster, hittade termer och hittade fraser
För att arbeta effektivt med sökresultat måste du först skapa ett indexlager för dina dokument. Med hjälp av det medföljande kodavsnittet skapas ett index i en angiven mapp och dokument från en annan mapp läggs till i den. Sökalternativ konfigureras sedan för att möjliggöra otydlig sökning, vilket möjliggör flexibel matchning med en maximal skillnadströskel. Denna inställning underlättar sökning efter termer som Einstein eller fraser som relativitetsteori med hjälp av avancerade algoritmer. När sökningen har utförts nås resultaten via SearchResult-objektet. Det totala antalet dokument som matchar frågan och deras förekomsträkningar visas. Detaljerad information om varje dokument hämtas, inklusive filsökvägen och förekomsten av termer och fraser. Genom att iterera genom de hittade fälten i varje dokument kan du identifiera specifika fält som innehåller matchningarna och analysera termer och fraser med deras respektive frekvenser. Det här steget visar hur man åtkomst till indexsökresultat med C#, vilket ger en strukturerad vy av den hämtade datan.
Kod för att arbeta med sökresultat med 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]); | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Att effektivt hantera och tolka sökresultat är avgörande för att maximera värdet av indexerad data. Denna process involverar inte bara att hämta dokument utan också att dyka djupt in i termhändelser, fältspecifika matchningar och frassekvenser. Den demonstrerade metoden ger dig möjlighet att analysera resultat på ett strukturerat och detaljerat sätt, vilket möjliggör avancerade datainsikter. Dessutom säkerställer bibliotekets plattformsoberoende sömlös integration mellan olika system och miljöer, vilket gör det till ett mångsidigt val för sökrelaterade uppgifter. Genom att behärska detta tillvägagångssätt kan du effektivt hantera sökresultat i C# och tillämpa dem på ett brett spektrum av scenarier, från dataanalys till dokumenthämtning i realtid.
Tidigare delade vi en omfattande guide om hur du skapar sökrapporter med C#. Se vår detaljerade artikel om hur du skapa sökrapport med C# för en komplett steg-för-steg-genomgång.