Executar pesquisa por blocos usando C#

Lidar com pesquisas de forma eficiente em grandes conjuntos de dados pode ser desafiador, especialmente ao lidar com índices contendo dezenas ou centenas de milhares de documentos. Uma solução para esse desafio é executar pesquisa por blocos usando C#, que processa dados segmento por segmento, otimizando a memória e os recursos de processamento. Essa abordagem é particularmente útil para aplicativos que exigem recursos de pesquisa de alto desempenho em coleções de documentos extensas. Ao aproveitar a pesquisa em blocos C# em grandes índices, os desenvolvedores podem executar operações de pesquisa flexíveis e eficientes, mantendo a escalabilidade.

Etapas para executar pesquisa por blocos usando C#

  1. Configure seu ambiente de desenvolvimento integrando GroupDocs.Search for .NET ao seu projeto para permitir a execução de pesquisas por blocos
  2. Inicialize um objeto Index especificando o caminho da pasta onde o índice será armazenado
  3. Use o método Index.Add para indexar documentos da pasta especificada para torná-los pesquisáveis
  4. Crie uma instância da classe SearchOptions e defina a propriedade IsChunkSearch como true para habilitar a pesquisa em blocos
  5. Chame o método Index.Search com a string de consulta e as opções de pesquisa configuradas

O conceito de pesquisa de documentos por blocos em C# envolve dividir o processo de pesquisa em partes gerenciáveis, permitindo que cada segmento do índice seja processado individualmente. Isso é obtido usando uma combinação da classe Index e da classe SearchOptions, onde a propriedade IsChunkSearch habilita a pesquisa em blocos. O código abaixo demonstra como criar um índice, adicionar documentos e executar uma consulta de pesquisa em blocos. Os resultados são recuperados segmento por segmento usando o método SearchNext, garantindo o processamento eficiente de grandes conjuntos de dados.

Código para executar pesquisa por pedaços usando 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);
}
}
}
}

A busca em blocos fornece uma solução robusta para lidar eficientemente com buscas de dados em larga escala, dividindo o processo em partes menores e gerenciáveis. Essa abordagem é particularmente valiosa quando você precisa pesquisar grandes índices de documentos em C#, oferecendo benefícios de escalabilidade e desempenho. Além disso, a compatibilidade entre plataformas da biblioteca subjacente garante uma implantação perfeita no Windows, macOS e Linux. Ao incorporar essa técnica, os desenvolvedores podem criar soluções de busca poderosas e flexíveis que atendem às demandas de aplicativos modernos com uso intensivo de dados.

Anteriormente, compartilhamos um guia abrangente sobre como executar uma pesquisa curinga usando C#. Para um processo detalhado passo a passo, certifique-se de verificar nosso artigo sobre como executar pesquisa curinga usando C#.

 Português