Efektivní zpracování vyhledávání ve velkých souborech dat může být náročné, zejména při práci s indexy obsahujícími desítky nebo stovky tisíc dokumentů. Řešením této výzvy je provádět vyhledávání po blocích pomocí jazyka C#, který zpracovává data segment po segmentu, optimalizuje paměť a zpracovává zdroje. Tento přístup je zvláště užitečný pro aplikace vyžadující vysoce výkonné možnosti vyhledávání v rozsáhlých kolekcích dokumentů. Využitím C# blokového vyhledávání ve velkých indexech mohou vývojáři provádět flexibilní a efektivní vyhledávací operace při zachování škálovatelnosti.
Kroky k provedení vyhledávání podle bloků pomocí C#
- Nastavte své vývojové prostředí integrací GroupDocs.Search for .NET do svého projektu, abyste mohli provádět vyhledávání po částech
- Inicializujte objekt Index zadáním cesty ke složce, kam bude index uložen
- Pomocí metody Index.Add indexujte dokumenty ze zadané složky, aby bylo možné v nich vyhledávat
- Vytvořte instanci třídy SearchOptions a nastavte vlastnost IsChunkSearch na true, abyste povolili blokové vyhledávání
- Zavolejte metodu Index.Search s řetězcem dotazu a nakonfigurovanými možnostmi vyhledávání
Koncept prohledávání dokumentů podle kousků v C# zahrnuje rozdělení vyhledávacího procesu na zvládnutelné části, což umožňuje zpracovat každý segment indexu samostatně. Toho je dosaženo pomocí kombinace třídy Index a třídy SearchOptions, kde vlastnost IsChunkSearch umožňuje blokové vyhledávání. Níže uvedený kód demonstruje, jak vytvořit index, přidat dokumenty a provést blokový vyhledávací dotaz. Výsledky jsou získávány segment po segmentu pomocí metody SearchNext, která zajišťuje efektivní zpracování velkých datových sad.
Kód pro provádění vyhledávání podle bloků pomocí C#
using GroupDocs.Search; | |
using GroupDocs.Search.Options; | |
using GroupDocs.Search.Results; | |
using System; | |
namespace PerformSearchbyChunksUsingCSharp | |
{ | |
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\"; | |
string query = "Einstein"; | |
// Creating an index in the specified folder | |
Index index = new Index(indexFolder); | |
// Indexing documents from the specified folder | |
index.Add(documentsFolder); | |
// Creating a search options instance | |
SearchOptions options = new SearchOptions(); | |
options.IsChunkSearch = true; // Enabling the search by chunks | |
// Starting the search by chunks | |
SearchResult result = index.Search(query, options); | |
Console.WriteLine("Document count: " + result.DocumentCount); | |
Console.WriteLine("Occurrence count: " + result.OccurrenceCount); | |
// Continuing the search by chunks | |
while (result.NextChunkSearchToken != null) | |
{ | |
result = index.SearchNext(result.NextChunkSearchToken); | |
Console.WriteLine("Document count: " + result.DocumentCount); | |
Console.WriteLine("Occurrence count: " + result.OccurrenceCount); | |
} | |
} | |
} | |
} |
Chunked search poskytuje robustní řešení pro efektivní zpracování rozsáhlých datových vyhledávání rozdělením procesu na menší, spravovatelné části. Tento přístup je zvláště cenný, když potřebujete prohledávat velké indexy dokumentů v C#, což nabízí výhody škálovatelnosti a výkonu. Kromě toho kompatibilita základní knihovny mezi platformami zajišťuje bezproblémové nasazení v systémech Windows, macOS a Linux. Začleněním této techniky mohou vývojáři vytvářet výkonná a flexibilní řešení pro vyhledávání, která uspokojí požadavky moderních aplikací náročných na data.
Dříve jsme sdíleli komplexního průvodce pro vyhledávání zástupných znaků pomocí C#. Podrobný postup krok za krokem najdete v našem článku o provádět vyhledávání zástupných znaků pomocí C#.