Otimizando buscar com Lucene em Asp.net – Indexador de Conteúdo

Olá sejam bem vindos a mais um artigo, hoje pretendo mostrar como trabalhar com framework de indexação Lucene, bem para quem trabalha com Java deve conhecer.

O lucene é um framework que tem como principal funcionalidade indexar conteúdos.

As vantagens de se usar ele são muitas, pois aumenta a performance de busca do site.

Nesse artigo pretendo mostrar alguns exemplos práticos de como usar algumas funcionalidades.

Criei uma classe encapsulando as duas funcionalidades que serão abordados no artigo, vou disponibilizar todo o código fonte para download.

 

Exemplo 1: Indexando Conteúdos.

Para indexar o conteúdo existe uma Entidade chamada LuceneEntity dentro da classe LuceneUtitlity, abaixo vou colocar um exemplo da implementação da funcionalidade.

 

List<LuceneEntity> listConteudo = new List<LuceneEntity>();

            listConteudo.AddRange(new LuceneEntity[] {

                    new LuceneEntity(1, "Emerson", "descrição 1"),

                        new LuceneEntity(1, "Angelica", "descrição 2")

            });

 

            LuceneUtility.AddText (listConteudo);

Definição: O método AddText pede como parâmetro uma lista de objetos do tipo luceneEntity, criei esse método com esse tipo de parâmetro porque quando for indexar conteúdo provavelmente vai ser mais de um, acredito que fico bem simples a forma de indexar utilizando a classe customizada.

Exemplo 2: Fazendo busca dos conteúdos indexados.

 

string search = string.Empty;

            Console.Write("Pesquisar:");

            while ((search = Console.ReadLine()) != string.Empty)

            {

                List<LuceneEntity> list = LuceneUtility.Search(search);

                foreach (var c in list)

                {

                    Console.WriteLine(c.titulo);

                }

                Console.Write("Pesquisar:");

            }

Definição: O método de busca fico super simples de chamar usando a classe LuceneUtitlity ela é do tipo estática com o seus métodos todos estáticos também, para Indexar ou buscar e só instanciar a classe LuceneUtility e invocar os métodos necessários.

Bom, espero que você tenha gostado abaixo o link para download do código fonte e não deixe de comentar qualquer duvida entre em contato: emersonjprogramador@gmail.com.


Até mais Emerson Jose.