![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP HANA La búsqueda de textos y el análisis de datos no estructurados
ABAP HANA La búsqueda de textos y el análisis de datos no estructurados
![ABAP HANA La búsqueda de textos y el análisis de datos no estructurados ABAP HANA La búsqueda de textos y el análisis de datos no estructurados](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/34.jpg)
Búsqueda de textos y el análisis de datos no estructurados
1. Las Ayudas de búsqueda y la búsqueda de textos en SAP HANA
- La función de búsqueda de texto de Sap Hana permite desarrollar ayudas de búsqueda que funcionan de manera similar a las búsquedas modernas en Internet
- Proporcionan cierta tolerancia a los errores y pueden procesar términos y sinónimos multilingües
- A La búsqueda tolerante a errores se le conoce también como Búsqueda difusa o Fuzzy search
2. El reconocimiento de patrones en SAP HANA
- La función de análisis de texto en SAP HANA nos permite realizar búsquedas dentro de los texto, y extraer información adicional de los textos, como las relaciones e incluso las intenciones o emociones dentro de los textos
- El análisis de sentimientos es parte de la funcionalidad del motor de texto en SAP HANA y permite reconocer patrones en estos tipos de datos no estructurados
3. Características de la búsqueda de texto de SAP HANA
- Búsqueda de estilo libre : No se requiere saber las columnas exactas de la base de datos
- Búsqueda tolerante a errores (búsqueda difusa o fuzzy search) : Puede variar la ortografía ligeramente
- Búsqueda lingüística y búsqueda de sinónimos : Incluye variantes lingüísticas y términos sinónimos
- Sugerencia de valor : Identifica de manera eficiente los resultados de búsqueda probables mientras el usuario escribe y los presenta en tiempo real
- Ranking de resultados : Los resultados de la búsqueda se optimizan para que los resultados con la tasa de probabilidad más alta se presenten en la parte superior de la lista
- Facetas de búsqueda : Los resultados se cuentan y agrupan según criterios específicos
- Análisis de texto (particularmente análisis de sentimiento) : Se extrae información adicional de los textos, permitiendo obtener información sobre aspectos semánticos
4. La búsqueda tolerante a errores
- La búsqueda difusa o tolerante a errores (fuzzy search) implica la búsqueda de cadenas de caracteres en datos basados en texto, donde los datos no tienen que corresponder exactamente con la solicitud de búsqueda
- Se usan algoritmos matemáticos que determinan el grado en que un registro de datos debe corresponder a la búsqueda
- El resultado del cálculo es a menudo un valor numérico utilizado para decidir si un registro de datos es lo suficientemente similar a la solicitud de búsqueda
- La función de búsqueda de texto en SAP HANA determina un valor entre 0 y 1 que marca el grado de similitud
- Como programador, debemos definir un valor de umbral (por ej. 0,8) a partir del cual un valor del conjunto de datos que se ha buscado se clasifica de acuerdo con la solicitud
- La búsqueda difusa también puede extenderse por listas de sinónimos, así, se puede almacenar una lista de términos que son equivalentes a un término específico
- Otra opción para implementar una búsqueda más inteligente es familiarizar el sistema con las características semánticas de términos específicos. No todos los términos en una solicitud de búsqueda tienen la misma selectividad. Por esto es mas importante ingresar el nombre de una empresa similar y no ingresar un "S.A."
- Cuando ejecutamos una solicitud de búsqueda en SAP HANA, podemos ingresar una lista de las llamadas Stop Words (Noise Words) que se consideran menos importantes que otras palabras
5. Los tipos de datos de texto y los índices de texto completo en Sap Hana
- La búsqueda difusa en SAP HANA se basa en los tipos de datos del almacén de columnas
- Los tipos de datos TEXT y SHORTTEXT se dedican a búsquedas de texto (y análisis de texto). TEXT representa un objeto grande, y SHORTTEXT se usa para cadenas de caracteres de una longitud determinada. Así, los textos se fragmentan internamente en tokens que forman la base para búsquedas y análisis
- Los tipos de datos TEXT Y SHORTEXT no tienen soporte nativo en ABAP, por lo cual no se pueden usar para crear una tabla en DDIC
- Sin la capacidad de dividir los textos en tokens de búsqueda, el sistema no puede reconocer una permutación de palabras, que es un estándar en las aplicaciones de búsqueda modernas
- Sin embargo, lo que se puede hacer es agregar la funcionalidad ofrecida por los Tipos de datos de texto a una columna específica mediante la creación de un índica de texto completo
- De esta manera, se pueden habilitar las funciones de búsqueda de texto y análisis de texto para la mayoría de los tipos DDIC de tipo carácter (incluidos CHAR, STRING, DATS, etc.)
- Cuando se crea un índice de texto completo (Full Text Index) para una columna de la tabla, el sistema crea una columna interna invisible (columna sombreada) del tipo TEXTO, que contiene los mismos datos pero en una presentación optimizada para las solicitudes de búsqueda. En este contexto, el texto se fragmenta en tokens y se genera un diccionario adicional. A continuación un ejemplo:
- Podemos crear el índice de texto completo (Full Text Index) utilizando la sentencia SQL CREATE FULLTEXT INDEX
- A partir de la versión 7.4 de Abap, es posible crear un índice de texto completo a través del DDIC utilizando parámetros comunes
6. El uso de la búsqueda de textos a través de SQL
- Como sucede con la mayoría de las funciones en SAP HANA, podemos invocar la búsqueda de texto a través de SQL. Ejemplo de uso de CONTAINS para búsqueda difusa:
- CONTAINS se puede usar en otras dos variantes: EXACT y LINGUISTIC
- CONTAINS permite realizar búsquedas en varias columnas; ejemplo de búsqueda exacta de líneas aéreas cuyos nombres o direcciones web contienen "Airlines" o "Airways" o terminan con ".com"
SELECT * FROM scarr WHERE CONTAINS ((carrname,url), 'Airlines OR Airways OR *.com, EXACT)
7. La búsqueda difusa (Fuzzy search)
- La podemos usar para búsqueda simple en una o varias columnas de una tabla o vista. La cláusula CONTAINS permite especificar varias columnas. Ejemplo de búsqueda en el horario de vuelo a 'Tokio', y fué necesario definir un índice de texto completo para el campo CITYFROM y otro para CITYTO utilizando DDIC:
SELECT * FROM spfli WHERE CONTAINS ((cityfrom,cityto), 'Tokio', fuzzy(0.8))
8. El uso de la búsqueda de textos en ABAP
- Las ayudas de búsqueda (Search Help) son una excelente opción para utilizar la búsqueda de textos en SAP HANA. Para ello debemos crear la ayuda de búsqueda en el Diccionario de datos Abap
- En las opciones avanzadas (Enhanced Options) de la ayuda de búsqueda, podemos seleccionar: si los valores se muestran directamente, si se ejecuta una búsqueda de texto completo en varias columnas y qué nivel de detalle se aplica
- Después de la activación, podemos integrar la ayuda de búsqueda con un programa de prueba:
REPORT zr_valuehelp.
PARAMETERS: cust_id TYPE s_customer MATCHCODE OBJECT zf4_fuzzy.
 
 
 
Sobre el autor
Publicación académica de Sergio Diaz, en su ámbito de estudios para el Máster ABAP for HANA.
Sergio Diaz
Profesión: Ingeniero de Sistemas - Colombia - Legajo: BB75D
✒️Autor de: 14 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Sergio Diaz