🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️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

1.- Introducción a la búsqueda de textos y análisis de datos no estructurados

HANA nos ofrece la opción de búsqueda en datos no estructurados, como las “ayudas de búsqueda”.

1.1.- Las ayudas de búsqueda y la búsqueda de textos

SAP contiene ayudas de búsqueda en diferentes lugares de sus interfaces, generalmente vienen en la parte de campos donde podemos ingresar la ayuda de búsqueda mediante textos.

Se utiliza estas búsquedas de conjuntos de datos por palabras clave que se desea buscar, SAP nos permite introducir información que sea compleja y proporciona la opción de comodines como el asterisco (*).

Si se escribe incorrectamente una entrada o los datos almacenados son incorrectos, por ejemplo, un nombre, una ubicación, etc… generalmente no se obtendrán resultados.

Ejemplo, si queremos buscar un cliente especifico de Argentina que tenga su sede en Buenos Aires y trabaje en telecomunicaciones y solo tenemos la región, se tendría que buscar de la siguiente forma “Buenos*ire*” en el campo que proporciona SAP.

1.2.- Las ayudas de búsqueda y la búsqueda de textos en SAP HANA

En SAP HANA la ayuda de búsqueda nos permite agregar textos similares en una aplicación de búsqueda WEB, esto permite la tolerancia de errores en el texto y puede procesar términos y sinónimos multilingües.

Ejemplo, si queremos buscar un cliente especifico de Argentina que tenga su sede en Buenos Aires y trabaje en telecomunicaciones y solo tenemos la región, se puede buscar de la siguiente forma “buenes eires tele”enos*ire*) a pesar de la ortografía.

  • Búsqueda difusa (Fuzzy search): Los usuarios no siempre pueden determinar si el resultado es correcto en este tipo de búsqueda tolerante a errores.

1.3.- El reconocimiento de patrones

Es una función que permite identificar si un registro esta duplicado ya que se puede usar en diferentes escenarios: por ejemplo, para evitar tener socios comerciales duplicados en datos maestros, es posible verificar en el sistema si ya existe un cliente similar y notificar al usuario.

En este contexto, ser similar podría significar que el apellido y la dirección de un cliente nuevo y existente son casi idénticos.

A menudo los nombres y direcciones se ingresan con diferentes tipos de ortografía, una simple comprobación de entradas idénticas rara vez arroja resultados satisfactorios.

1.4.- El reconocimiento de patrones en SAP HANA

En SAP HANA la función de análisis de textos nos permite realizar búsquedas dentro de los textos y extraer información adicional de los textos.

Se puede reconocer las relaciones e incluso las intenciones o emociones de los textos.

Al usar el análisis de sentimientos nos permite reconocer patrones en estos tipos de datos no estructurados, por ejemplo, en una tienda web nos permitirá ordenar los productos en línea y publicar comentarios más positivos o negativos.

2.- Los principios básicos de la búsqueda de textos en SAP HANA

El objetivo principal de búsqueda de texto en SAP HANA es optimizar la búsqueda en sus interfaces, proporcionando al usuario una experiencia similar a los motores de búsqueda de internet.

  • Búsqueda estilo libre: Permite al usuario realizar una búsqueda sin conocer las columnas exactas de la base de datos, ejemplo en un solo campo de búsqueda puede incluir todos los datos a buscar.
  • Búsqueda tolerante a errores (búsqueda difusa o fuzzy search): Se puede variar la ortografía ligeramente.
  • Búsqueda lingüística o de sinónimos: Incluyen variantes lingüísticas y sinónimos.
  • Sugerencias de valor: Puede identificar en tiempo real resultados de búsqueda mientras el usuario escribe y los presenta a otro usuario.
  • Ranking de resultados: Se presentan los resultados con tasa de probabilidad más alta en la parte superior de la lista.
  • Facetas de búsqueda: Se agrupan los registros por criterios específicos, ejemplo al buscar aerolíneas podemos ver la distribución de cada una por país.
  • Análisis de texto (particularmente de sentimiento): Se extrae información adicional del texto lo que permite obtener información de aspectos semánticos.

2.1.- La búsqueda tolerante a errores (Fuzzy Search)

Fuzzy Search

Implica búsqueda en cadena de caracteres basada en textos donde no importa que sea exacta a la solicitud de búsqueda.

Los algoritmos matemáticos determinan el grado en que un registro debe corresponder a la solicitud. El calculo realizado a menudo determina si un registro es suficientemente similar a la solicitud.

En SAP HANA la búsqueda de textos determina un valor entre 0 y 1 que marque el grado de similitud, como nosotros deberemos determinar el umbral (por ejemplo 0,8) a partir del cual un valor del conjunto se clasifica de acuerdo con la solicitud.

También esta funcionalidad se puede adaptar para textos semánticos, ejemplo, la búsqueda de una fecha puede incluir valores de fecha de días atrás o después de la que se busca.

En este caso el criterio de similitud es el periodo en lugar de la similitud de la cadena de caracteres (según este criterio la fecha 01.01.1909 no es similar a 01.01.1990, aunque se haya cambiado la posicione de un solo carácter).

Expresiones utilizadas en las búsquedas

Se puede utilizar expresiones simples que ayuden a formular solicitudes de búsqueda más precisas. Se incluye la opción de imponer una búsqueda exacta para una parte especifica de la solicitud de búsqueda o usar expresiones lógicas.

Algunas expresiones de muestra de búsqueda en HANA:

Pedido de búsqueda Explicación
Lufhtansa o united Resultados similares a “Lufthansa” o “United”
Airline-united Resultados similares a “airline” pero no a “united”
“south air” Resultados similares a la expresión entera “south air” y no solo a sus componentes “south” y “air”

Búsqueda lingüística

Se incluyen aspectos gramaticales y otros lingüísticos, los términos vuelven a su origen en palabras para reconocer variantes de palabras como “casa”, “casas”, “vivienda”, etc. Al igual ofrece oportunidad para manejo de textos multilingües y solicitudes de búsqueda.

Lista de sinónimos

Se almacenan listas con términos equivalentes a un término especifico, la búsqueda se basará en ella, por ejemplo, “notebook” puede considerarse sinónimo de “laptop” o “monitor”.

Esta característica es útil para abreviaturas y conceptos específicos.

Stop words (noise words)

No todos los términos tienen la misma selectividad, términos como “S.A” o “Inc.” No son tan relevantes como un nombre real de la empresa.

En general es mas importante ingresar el nombre de una empresa similar al que se esta buscando que ingresar “S.A.”, del mismo modo en textos largos como descripciones de productos, las similitudes en partes del discurso, como artículos o pronombres son menos importantes que las similitudes de nombres dentro del texto (por ejemplo, en las marcas).

Al ejecutar una búsqueda en SAP HANA podemos ingresar a un alista de stop words que se consideran menos importantes que otras palabras.

3.- Los tipos de datos de texto y los índices de texto completo en SAP HANA

La búsqueda difusa se basa en tipo de datos del almacén de columnas.

TEXT y SHORTTEXT representan dos tipos de datos específicos que se dedican a búsqueda de texto y análisis.

  • SHORTTEXT: Para cadenas de caracteres de longitud determinada.
  • TEXT: Para objetos grandes.

Soporte en ABAP

Desafortunadamente no hay soporte nativo pata TEXT y SHORTTEXT, es imposible crear una tabla en DDIC que use estos tipos de datos.

Aunque la búsqueda difusa sea compatible con otros tipos de datos (ejemplo, VARCHAR y NVARCHAR), no es suficientemente extensa.

Sin esta capacidad de dividir los textos en tokens de búsqueda, no se puede reconocer una permutación de palabras, que es un estándar en las aplicaciones modernas.

Índice de texto complete (Full Text Index)

Se pueden agregar estas funcionalidades mediante tipos de datos de textos a una columna especifica por la creación de un índice de texto completo.

Se pueden habilitar las funciones de búsqueda de texto y análisis para la mayoría de los tipos DDIC de tipo carácter (incluidos CHAR, STRING, DATS, etc.).

Usando SQL para la creación

Se pude crear el índice de texto completo utilizando la sentencia SQL CREATE FULLTEXT INDEX:

El nombre del índice de texto completo debe ser único dentro de un esquema, por lo que se recomienda prefijar el índice con el nombre de la tabla base de datos para evitar posibles conflictos de nombres.


Creación en DDIC

Igual se puede crear un índice de texto completo a través del DDIC utilizando parámetros comunes.

Para esto se debe definir un nuevo índice para la tabla desde SE11, o más bien un índice de extensión (para una extensión sin modificación de una tabla estándar de SAP). Esto contiene la columna requerida como un campo y se crea en la base de datos SAP HANA

A través de Goto / Full Text Index se pude activar el índice de texto completo y configurar una variedad de parámetros.

Estos parámetros corresponden a los de la sentencia CREATE FULLTEXT INDEX.

La configuración estándar y de idioma (utilizando una columna de la tabla o un idioma fijo) suelen ser suficientes para una fuzzy search.

4.- El uso de la búsqueda de textos a través de SQL

Se puede invocar la mayoría de las funciones en SAP HANA, se puede solicitar la búsqueda de texto a través de SQL.

La palabra clave CONTAINS

Debemos usar una sentencia SELECT con la palabra clave CONTAINS y nos permite llamar a las múltiples variantes de la búsqueda de texto.

Parámetro FUZZY

El parámetro FUZZY (0.8) define el valor del umbral, donde 0.7 y 0.8 suele ser un buen valor estándar para obtener resultados que son relativamente similares.

Además, este parámetro proporciona muchas otras opciones de configuración.

Búsqueda Exacta / Búsqueda Lingüística

Se puede usar la sentencia CONTAINS con otras dos variables: EXACT y LINGUISTIC.

EXACT: El sistema busca coincidencias exactas con palabras completas (según la tokenización del texto en la base de datos), también representa el valor predeterminado si no ingresamos ningún parámetro.

Se puede usar comodines como (*) y a diferencia de un LIKE en SQL, la cláusula CONTAINS nos permite realizar búsqueda en varias columnas.

Se puede utilizar SQL para bucles de texto en SAP HANA, pero hay limitaciones a las combinaciones compatibles, una es que solo puede usar la cláusula CONTAINS para búsqueda de texto en tablas columnares y no se puede utilizar la función de búsqueda de textos para los atributos calculados de una vista.

4.1.- La búsqueda difusa (Fuzzy search)

Se puede usar la búsqueda difusa para una búsqueda simple en una o varias columnas de una tabla o vista.

CONTAINS nos permite especificar varias columnas para ser consideradas durante la ejecución de la búsqueda.

Existen funciones escalares especiales que permiten recuperar información adicional para registros individuales en el conjunto de resultados, la función SCORE proporciona información sobre grado de similitud entre resultado de búsqueda y la solicitud de búsqueda, este valor oscila entre 0 y 1 con valores más altos que indican mayor grado de similitud, normalmente la función sirve para ordenar los resultados de la búsqueda y los posiciona al principio de la lista los de mayor grado de similitud, en búsquedas en textos más largos es practico para los usuarios si la ubicación exacta encontrada de una solicitud de búsqueda se resalta en el texto, para este propósito SAP HANA SQL ofrece la función HIGHLIGHT el sistema devuelve el texto completo con la ubicación encontrada resaltada, si se usa SNIPPETS solo devuelve un extracto del texto alrededor de la ubicación encontrada.


5.- El uso de la búsqueda de textos en ABAP

Las ayudas de búsqueda se deben crear en el DDIC.

A partir de ABAP 7.4 varias mejoras creadas soportan en SAP GUI mostrar valores directamente mientras los usuarios ingresan textos, pero los requisitos son contar con ABAP7.4 SP06 o superior y tener instalado al menos SAP GUI 7.3.

Podemos definir la ayuda de búsqueda declarativamente de tal manera que especifique el nombre de una tabla o vista y seleccione los campos para el cuadro de dialogo y podemos hacerlo desde la SE80 o SE11.

En la opción (Enhanced Options) seleccionamos si los valores se muestran directamente, o si se ejecuta una búsqueda de texto completo en varias columnas y que nivel de detalle se aplica.

No es necesario crear un índice de texto completo, después de activarla podemos integrar la ayuda de búsqueda con un programa de prueba.

Y finalmente veremos en pantalla la nueva ayuda de búsqueda en donde los valores se muestran a medida que el usuario escribe.


 

 

 


Sobre el autor

Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para el Máster ABAP for HANA.

SAP Master

Ixhel Magai Lopez Valencia

Mexico - Legajo: PM62E

✒️Autor de: 134 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: PartTime

Presentación:

Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java

Certificación Académica de Ixhel Lopez