Full Text Search em aplicações GeneXus
Bruno Macedo publicou recentemente na iMasters do Brasil o seguinte artigo onde aborda a importância da funcionalidade das buscas e o recurso FTS do GeneXus, presente na versão X.
Hoje em dia, a busca é essencial para qualquer usuário da Internet. Prova disso é o Google, o número 1 dos buscadores.
É cada vez mais comum os sites oferecerem um campo de busca em alguma parte da página. Esta funcionalidade, essencial, facilita muito a vida do usuário e torna-se muito importante para a permanência dos mesmos no site.
Como implementar esse mecanismo de busca nas aplicações? Muitas vezes a busca é feita no banco de dados, utilizando uma consulta SQL. Há casos em que o desenvolvedor utiliza-se do operador LIKE, que ocasiona uma grande perda de performance se houver muitos dados na tabela.
Esta questão se resolve com o poderoso recurso de FTS (Full Text Search) que nos oferece GeneXus X.
Objetivo de FTS nas Aplicações
Full Text Search permite que os usuários da aplicação definam suas próprias buscas. A busca irá analisar:
• A base de dados (somente nas Transações definidas como Business Components);
• Arquivos armazenados no HD.
O objetivo de FTS é buscar informações não estruturadas, como textos em campos de comentário, sugestão entre outros. Em geral, são textos digitados pelo próprio usuário.
FTS na KB
GeneXus também oferece um poderoso motor de busca que permite localizar rapidamente qualquer coisa em uma Knowledge Base. Você pode fazer uma busca informando um texto ou até mesmo especificando valores de propriedades de objetos ou da própria base de conhecimento.
Baseado em complexos algoritmos, o motor de busca (FTS) do GeneXus encontrará o que você procura, embora tenha que vasculhar toda a KB.
Veja mais informações sobre FTS no CommunityWiki.
FTS na Aplicação
Como foi visto, o FTS permite modificar o modo em que os usuários navegam nos sites. Existem duas formas básicas de navegação: a primeira é percorrer links (um caminho complicado quando não se sabe o local exato do link) e a segunda forma é fazendo uma busca de texto completa em todo o site, com o objetivo de ir diretamente ao link desejado.
Uma situação muito usual do FTS é quando o usuário simplesmente lembra apenas algo como: "Ganhou o prêmio", "Pediram empréstimos" ou "Total Fatura: 5.400", etc. É aí que o FTS entra em cena, pois resolver uma busca desse tipo por meio de programação tradicional não seria nada fácil.
Um dos motores de busca utilizado pelo GeneXus é o Apache Lucene. Com ele é possível indexar as Transações GeneXus definidas como BC e arquivos do tipo HTML, PDF, documentos do Word ou qualquer outro formato do qual se possa ser extraída informação textual.
O Apache Lucene, ou simplesmente Lucene, é um software de busca e uma API de indexação. Foi escrito em Java e também é um software de código aberto.
Mais informações sobre Apache Lucene em: http://lucene.apache.org/
O usuário pode fazer buscas nas aplicações da seguinte maneira:
• Procurando por todas as palavras-chave digitadas, por exemplo: empréstimo AND dívida (incluir espaços em branco entre as palavras é equivalente ao operador AND);
• Procurando por textos exatos, por exemplo: juros reembolso;
• Procurando pelo menos por uma palavra, por exemplo: crédito OR débito;
• Procurando por agrupamento de palavras, por exemplo: (ativo OR compra) AND NOT financiar;
Existem mais opções de busca que dependem do motor de busca utilizado.
Conclusão
O FTS é um recurso poderoso e eficiente implementado na versão X do GeneXus.
Ele se faz cada vez mais necessário nas aplicações, pois a cada dia aumenta a necessidade de buscar informações "à Google".
No próximo artigo iremos abordar os tipos de dados disponíveis para trabalhar com o FTS no GeneXus, também como se faz para indexar arquivos, além disso, é claro, de exemplos.
Até a próxima!
* Baseado no artigo publicado por Bruno Macedo na iMasters.
É cada vez mais comum os sites oferecerem um campo de busca em alguma parte da página. Esta funcionalidade, essencial, facilita muito a vida do usuário e torna-se muito importante para a permanência dos mesmos no site.
Como implementar esse mecanismo de busca nas aplicações? Muitas vezes a busca é feita no banco de dados, utilizando uma consulta SQL. Há casos em que o desenvolvedor utiliza-se do operador LIKE, que ocasiona uma grande perda de performance se houver muitos dados na tabela.
Esta questão se resolve com o poderoso recurso de FTS (Full Text Search) que nos oferece GeneXus X.
Objetivo de FTS nas Aplicações
Full Text Search permite que os usuários da aplicação definam suas próprias buscas. A busca irá analisar:
• A base de dados (somente nas Transações definidas como Business Components);
• Arquivos armazenados no HD.
O objetivo de FTS é buscar informações não estruturadas, como textos em campos de comentário, sugestão entre outros. Em geral, são textos digitados pelo próprio usuário.
FTS na KB
GeneXus também oferece um poderoso motor de busca que permite localizar rapidamente qualquer coisa em uma Knowledge Base. Você pode fazer uma busca informando um texto ou até mesmo especificando valores de propriedades de objetos ou da própria base de conhecimento.
Baseado em complexos algoritmos, o motor de busca (FTS) do GeneXus encontrará o que você procura, embora tenha que vasculhar toda a KB.
Veja mais informações sobre FTS no CommunityWiki.
FTS na Aplicação
Como foi visto, o FTS permite modificar o modo em que os usuários navegam nos sites. Existem duas formas básicas de navegação: a primeira é percorrer links (um caminho complicado quando não se sabe o local exato do link) e a segunda forma é fazendo uma busca de texto completa em todo o site, com o objetivo de ir diretamente ao link desejado.
Uma situação muito usual do FTS é quando o usuário simplesmente lembra apenas algo como: "Ganhou o prêmio", "Pediram empréstimos" ou "Total Fatura: 5.400", etc. É aí que o FTS entra em cena, pois resolver uma busca desse tipo por meio de programação tradicional não seria nada fácil.
Um dos motores de busca utilizado pelo GeneXus é o Apache Lucene. Com ele é possível indexar as Transações GeneXus definidas como BC e arquivos do tipo HTML, PDF, documentos do Word ou qualquer outro formato do qual se possa ser extraída informação textual.
O Apache Lucene, ou simplesmente Lucene, é um software de busca e uma API de indexação. Foi escrito em Java e também é um software de código aberto.
Mais informações sobre Apache Lucene em: http://lucene.apache.org/
O usuário pode fazer buscas nas aplicações da seguinte maneira:
• Procurando por todas as palavras-chave digitadas, por exemplo: empréstimo AND dívida (incluir espaços em branco entre as palavras é equivalente ao operador AND);
• Procurando por textos exatos, por exemplo: juros reembolso;
• Procurando pelo menos por uma palavra, por exemplo: crédito OR débito;
• Procurando por agrupamento de palavras, por exemplo: (ativo OR compra) AND NOT financiar;
Existem mais opções de busca que dependem do motor de busca utilizado.
Conclusão
O FTS é um recurso poderoso e eficiente implementado na versão X do GeneXus.
Ele se faz cada vez mais necessário nas aplicações, pois a cada dia aumenta a necessidade de buscar informações "à Google".
No próximo artigo iremos abordar os tipos de dados disponíveis para trabalhar com o FTS no GeneXus, também como se faz para indexar arquivos, além disso, é claro, de exemplos.
Até a próxima!
* Baseado no artigo publicado por Bruno Macedo na iMasters.