Arbeiten mit Suchergebnissen mithilfe von C#

Die effiziente Verwaltung von Suchergebnissen ist ein Eckpfeiler jedes robusten Dokumentabrufsystems. Wenn Sie verstehen, wie Sie diese Ergebnisse interpretieren und nutzen, können Sie datengesteuerte Entscheidungen erheblich verbessern. In diesem Handbuch erfahren Sie, wie Sie mit Suchergebnissen in C# arbeiten. Vom Einrichten eines Index-Repositorys bis zum Konfigurieren von Fuzzy-Suchoptionen bietet dieses Tutorial einen klaren und praktischen Ansatz für den Umgang mit Suchanfragen und deren Ergebnissen. Unabhängig davon, ob Sie Übereinstimmungen für einzelne Begriffe oder komplexe Phrasen analysieren müssen, ermöglicht Ihnen diese Methode, Ergebnisse umfassend zu verarbeiten und aussagekräftige Muster zu erkennen. Am Ende wissen Sie, wie Sie Suchergebnisse in C# abrufen und für verschiedene Anwendungen nutzen können.

Schritte zum Arbeiten mit Suchergebnissen unter Verwendung von C#

  1. Fügen Sie die Bibliothek GroupDocs.Search for .NET in Ihr Projekt ein, um mit Suchergebnissen zu arbeiten
  2. Erstellen Sie ein Indexobjekt mit der Klasse Index und geben Sie einen Ordnerpfad an, in dem der Index gespeichert wird
  3. Verwenden Sie die Methode Index.Add, um Dokumente aus dem angegebenen Ordner zum Index hinzuzufügen
  4. Erstellen Sie eine Instanz von SearchOptions und aktivieren Sie die Fuzzy-Suche, indem Sie FuzzySearch.Enabled auf true setzen.
  5. Definieren Sie die maximal zulässige Anzahl von Unterschieden (z. B. 3) mit FuzzyAlgorithm
  6. Verwenden Sie die Methode Index.Search, um nach Dokumenten zu suchen, die bestimmte Begriffe oder Ausdrücke sowie die konfigurierten Suchoptionen enthalten
  7. Ausgabe der Anzahl der gefundenen Dokumente (DocumentCount) und der Gesamtzahl der Vorkommen der Suchbegriffe (OccurrenceCount)
  8. Durchlaufen Sie die Dokumente in den Suchergebnissen mit der Methode GetFoundDocument. Zeigen Sie für jedes Dokument dessen Dateipfad und Vorkommensanzahl an.
  9. Durchlaufen Sie für jedes Dokument die FoundFields, um Details wie den Feldnamen, die Anzahl der Vorkommen, gefundene Begriffe und gefundene Phrasen anzuzeigen.

Um effektiv mit Suchergebnissen arbeiten zu können, müssen Sie zunächst ein Index-Repository für Ihre Dokumente einrichten. Mithilfe des bereitgestellten Codeausschnitts wird ein Index in einem angegebenen Ordner erstellt und Dokumente aus einem anderen Ordner werden diesem hinzugefügt. Anschließend werden die Suchoptionen so konfiguriert, dass eine unscharfe Suche möglich ist, die eine flexible Übereinstimmung mit einem maximalen Differenzschwellenwert ermöglicht. Dieses Setup erleichtert die Suche nach Begriffen wie Einstein oder Ausdrücken wie Relativitätstheorie mithilfe erweiterter Algorithmen. Sobald die Suche ausgeführt wurde, werden die Ergebnisse über das SearchResult-Objekt abgerufen. Die Gesamtzahl der Dokumente, die der Abfrage entsprechen, und ihre Vorkommenszahlen werden angezeigt. Detaillierte Informationen zu jedem Dokument werden abgerufen, einschließlich des Dateipfads und der Vorkommen von Begriffen und Ausdrücken. Indem Sie die gefundenen Felder in jedem Dokument durchlaufen, können Sie bestimmte Felder mit den Übereinstimmungen identifizieren und Begriffe und Ausdrücke mit ihren jeweiligen Häufigkeiten analysieren. Dieser Schritt zeigt, wie Sie mit C# auf Indexsuchergebnisse zugreifen und eine strukturierte Ansicht der abgerufenen Daten erhalten.

Code zum Arbeiten mit Suchergebnissen unter Verwendung von 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]);
}
}
}
}
}
}
}

Die effektive Verwaltung und Interpretation von Suchergebnissen ist entscheidend, um den Wert indexierter Daten zu maximieren. Dieser Prozess umfasst nicht nur das Abrufen von Dokumenten, sondern auch das tiefe Eintauchen in Begriffsvorkommen, feldspezifische Übereinstimmungen und Phrasensequenzen. Die gezeigte Methode ermöglicht Ihnen eine strukturierte und detaillierte Analyse der Ergebnisse und ermöglicht so erweiterte Dateneinblicke. Darüber hinaus gewährleistet die Plattformunabhängigkeit der Bibliothek eine nahtlose Integration in verschiedene Systeme und Umgebungen, was sie zu einer vielseitigen Wahl für suchbezogene Aufgaben macht. Wenn Sie diesen Ansatz beherrschen, können Sie Suchergebnisse effizient in C# verarbeiten und auf eine breite Palette von Szenarien anwenden, von der Datenanalyse bis zum Dokumentabruf in Echtzeit.

Zuvor haben wir eine umfassende Anleitung zum Erstellen von Suchberichten mit C# veröffentlicht. Eine vollständige Schritt-für-Schritt-Anleitung finden Sie in unserem ausführlichen Artikel zur Suchbericht mit C# erstellen.

 Deutsch