Full Text Search en aplicaciones GeneXus
Bruno Macedo publicó recientemente en iMasters de Brasil el siguiente artículo donde aborda la importancia de la funcionalidad de las búsquedas y el recurso FTS de GeneXus, presente en la versión X.
Hoy en día, la búsqueda es esencial para cualquier usuario de Internet. Muestra de ello es Google, el número 1 de los buscadores.
Es cada vez más habitual que los sitios ofrezcan un campo de búsqueda en alguna parte de la página. Esta funcionalidad, esencial, facilita mucho la vida del usuario y se vuelve muy importante para la permanencia de los mismos en el sitio.
¿Cómo implementar ese mecanismo de búsqueda en las aplicaciones? Muchas veces la búsqueda se realiza en el banco de datos, utilizando una consulta SQL. Hay casos en que el desarrollador se sirve del operador LIKE, que ocasiona una gran pérdida de performance si hay muchos datos en la tabla.
Este tema se resuelve con el poderoso recurso de FTS (Full Text Search) que nos brinda GeneXus X.
Objetivo de FTS en las Aplicaciones
Full Text Search permite que los usuarios de la aplicación definan sus propias búsquedas. La búsqueda analizará:
FTS en la KB
GeneXus también brinda un poderoso motor de búsqueda que permite localizar rápidamente cualquier cosa en una Knowledge Base. Puede hacer una búsqueda informando un texto o aun especificando valores de propiedades de objetos o de la propia base de conocimiento.
Basado en complejos algoritmos, el motor de búsqueda (FTS) de GeneXus encontrará lo que usted busca, aunque tenga que examinar toda la KB.
Vea más información sobre FTS en el CommunityWiki.
FTS en la Aplicación
Como hemos visto, FTS permite modificar el modo en que los usuarios navegan en los sitios. Existen dos formas básicas de navegación: la primera es recorriendo links (un camino complicado cuando no se sabe la ubicación exacta del link) y la segunda forma es haciendo una búsqueda de texto completa en todo el sitio, con el objetivo de ir directamente al link deseado.
Una situación muy usual de FTS es cuando el usuario simplemente recuerda algo como: "Ganó el premio", "Pidieron préstamos" o "Total Factura: 5.400", etc. Es ahí que FTS entra en escena, pues resolver una búsqueda de ese tipo mediante programación tradicional no sería nada fácil.
Uno de los motores de búsqueda utilizado por GeneXus es Apache Lucene. Con él es posible indexar las Transacciones GeneXus definidas como BC y archivos de tipo HTML, PDF, documentos de Word o cualquier otro formato del cual se pueda extraer información textual.
Apache Lucene, o simplemente Lucene, es un software de búsqueda y una API de indexación. Fue escrito en Java y también es un software de código abierto.
Más información sobre Apache Lucene en: http://lucene.apache.org/
El usuario puede hacer búsquedas en las aplicaciones de la siguiente manera:
Existen más opciones de búsqueda que dependen del motor de búsqueda utilizado.
Conclusión
FTS es un recurso poderoso y eficiente implementado en la versión X de GeneXus.
Se hace cada vez más necesario en las aplicaciones, pues a cada día se aumenta la necesidad de buscar informaciones "a la Google".
En el próximo artículo se abordará los tipos de datos disponibles para poder trabajar con el FTS en GeneXus, también cómo se hace para indexar archivos, además, por supuesto, de ejemplos.
¡Hasta la próxima!
* En base a artículo publicado por Bruno Macedo en iMasteres.
Es cada vez más habitual que los sitios ofrezcan un campo de búsqueda en alguna parte de la página. Esta funcionalidad, esencial, facilita mucho la vida del usuario y se vuelve muy importante para la permanencia de los mismos en el sitio.
¿Cómo implementar ese mecanismo de búsqueda en las aplicaciones? Muchas veces la búsqueda se realiza en el banco de datos, utilizando una consulta SQL. Hay casos en que el desarrollador se sirve del operador LIKE, que ocasiona una gran pérdida de performance si hay muchos datos en la tabla.
Este tema se resuelve con el poderoso recurso de FTS (Full Text Search) que nos brinda GeneXus X.
Objetivo de FTS en las Aplicaciones
Full Text Search permite que los usuarios de la aplicación definan sus propias búsquedas. La búsqueda analizará:
- La base de datos (solamente en las Transacciones definidas como Business Components);
- Archivos almacenados en el HD.
FTS en la KB
GeneXus también brinda un poderoso motor de búsqueda que permite localizar rápidamente cualquier cosa en una Knowledge Base. Puede hacer una búsqueda informando un texto o aun especificando valores de propiedades de objetos o de la propia base de conocimiento.
Basado en complejos algoritmos, el motor de búsqueda (FTS) de GeneXus encontrará lo que usted busca, aunque tenga que examinar toda la KB.
Vea más información sobre FTS en el CommunityWiki.
FTS en la Aplicación
Como hemos visto, FTS permite modificar el modo en que los usuarios navegan en los sitios. Existen dos formas básicas de navegación: la primera es recorriendo links (un camino complicado cuando no se sabe la ubicación exacta del link) y la segunda forma es haciendo una búsqueda de texto completa en todo el sitio, con el objetivo de ir directamente al link deseado.
Una situación muy usual de FTS es cuando el usuario simplemente recuerda algo como: "Ganó el premio", "Pidieron préstamos" o "Total Factura: 5.400", etc. Es ahí que FTS entra en escena, pues resolver una búsqueda de ese tipo mediante programación tradicional no sería nada fácil.
Uno de los motores de búsqueda utilizado por GeneXus es Apache Lucene. Con él es posible indexar las Transacciones GeneXus definidas como BC y archivos de tipo HTML, PDF, documentos de Word o cualquier otro formato del cual se pueda extraer información textual.
Apache Lucene, o simplemente Lucene, es un software de búsqueda y una API de indexación. Fue escrito en Java y también es un software de código abierto.
Más información sobre Apache Lucene en: http://lucene.apache.org/
El usuario puede hacer búsquedas en las aplicaciones de la siguiente manera:
- Buscando por todas las palabras clave digitadas, por ejemplo: préstamo AND deuda (incluir espacios en blanco entre las palabras es equivalente al operador AND);
- Buscando por textos exactos, por ejemplo: intereses reembolso;
- Buscando por lo menos por una palabra, por ejemplo: crédito OR debe;
- Buscando por agrupación de palabras, por ejemplo: (activo OR compra) AND NOT financiar;
Existen más opciones de búsqueda que dependen del motor de búsqueda utilizado.
Conclusión
FTS es un recurso poderoso y eficiente implementado en la versión X de GeneXus.
Se hace cada vez más necesario en las aplicaciones, pues a cada día se aumenta la necesidad de buscar informaciones "a la Google".
En el próximo artículo se abordará los tipos de datos disponibles para poder trabajar con el FTS en GeneXus, también cómo se hace para indexar archivos, además, por supuesto, de ejemplos.
¡Hasta la próxima!
| Bruno Macedo es Instructor y Consultor GeneXus en Brasil | |
* En base a artículo publicado por Bruno Macedo en iMasteres.