Efektivní správa výsledků vyhledávání je základním kamenem jakéhokoli robustního systému vyhledávání dokumentů a pochopení toho, jak tyto výsledky interpretovat a využívat, může výrazně zlepšit rozhodování založené na datech. V této příručce prozkoumáme, jak pracovat s výsledky vyhledávání pomocí C#. Tento výukový program poskytuje jasný a praktický přístup ke zpracování vyhledávacích dotazů a jejich výsledků, od nastavení úložiště indexů až po konfiguraci možností fuzzy vyhledávání. Ať už potřebujete analyzovat shody pro jednotlivé výrazy nebo složité fráze, tato metoda vás vybaví ke komplexnímu zpracování výsledků a odhalování smysluplných vzorců. Na konci budete mít jistotu, jak načíst výsledky vyhledávání v C# a jak je využít pro různé aplikace.
Kroky pro práci s výsledky vyhledávání pomocí C#
- Chcete-li pracovat s výsledky vyhledávání, zahrňte do svého projektu knihovnu GroupDocs.Search for .NET
- Vytvořte objekt indexu pomocí třídy Index a zadejte cestu ke složce, kam bude index uložen
- K přidání dokumentů ze zadané složky do indexu použijte metodu Index.Add
- Vytvořte instanci SearchOptions a povolte fuzzy vyhledávání nastavením FuzzySearch.Enabled na hodnotu true
- Definujte maximální počet přípustných rozdílů (např. 3) pomocí FuzzyAlgorithm
- Pomocí metody Index.Search vyhledejte dokumenty obsahující zadané výrazy nebo fráze spolu s nakonfigurovanými možnostmi vyhledávání
- Vypište počet nalezených dokumentů (DocumentCount) a celkový počet výskytů hledaných výrazů (OccurrenceCount)
- Procházejte dokumenty ve výsledcích vyhledávání pomocí metody GetFoundDocument. U každého dokumentu zobrazte jeho cestu k souboru a počet výskytů
- Pro každý dokument iterujte FoundFields a zobrazte podrobnosti, jako je název pole, počet výskytů, nalezené výrazy a nalezené fráze.
Chcete-li efektivně pracovat s výsledky vyhledávání, musíte nejprve nastavit úložiště indexů pro vaše dokumenty. Pomocí poskytnutého úryvku kódu se v určené složce vytvoří index a do něj se přidají dokumenty z jiné složky. Možnosti vyhledávání jsou poté nakonfigurovány tak, aby umožňovaly fuzzy vyhledávání, což umožňuje flexibilní shodu s maximálním prahem rozdílu. Toto nastavení usnadňuje vyhledávání výrazů jako Einstein nebo frází jako Teorie relativity pomocí pokročilých algoritmů. Po provedení vyhledávání jsou výsledky přístupné prostřednictvím objektu SearchResult. Zobrazí se celkový počet dokumentů odpovídajících dotazu a počty jejich výskytů. Jsou načteny podrobné informace o každém dokumentu, včetně cesty k souboru a výskytů termínů a frází. Procházením nalezených polí v každém dokumentu můžete identifikovat konkrétní pole obsahující shody a analyzovat termíny a fráze s jejich příslušnou frekvencí. Tento krok ukazuje, jak přistupovat k výsledkům indexového vyhledávání pomocí C# a poskytuje strukturovaný pohled na získaná data.
Kód pro práci s výsledky vyhledávání pomocí 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]); | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Efektivní správa a interpretace výsledků vyhledávání je rozhodující pro maximalizaci hodnoty indexovaných dat. Tento proces zahrnuje nejen získávání dokumentů, ale také ponoření se hluboko do termínových výskytů, shod specifických pro pole a sekvencí frází. Předvedená metoda vás vybaví k analýze výsledků strukturovaným a podrobným způsobem, což umožňuje pokročilé nahlédnutí do dat. Nezávislost knihovny na platformě navíc zajišťuje bezproblémovou integraci napříč různými systémy a prostředími, což z ní činí všestrannou volbu pro úkoly související s vyhledáváním. Zvládnutím tohoto přístupu můžete efektivně zpracovávat výsledky vyhledávání v C# a aplikovat je na širokou škálu scénářů, od analýzy dat až po načítání dokumentů v reálném čase.
Dříve jsme sdíleli komplexního průvodce vytvářením sestav vyhledávání pomocí C#. Chcete-li získat úplný podrobný návod, přečtěte si náš podrobný článek o vytvořit zprávu o vyhledávání pomocí C#.