🚀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

Búsqueda de textos y análisis de datos no estructurados.

SAP HANA nos ofrece una función para analizar datos no estructurados.

Si aprovechamos esta capacidad, podemos mejorar considerablemente la facilidad de uso de los escenarios de búsqueda dentro de los programas ABAP.

Podemos obtener más información al reconocer los patrones en los conjuntos de datos existentes.

1- Las ayudas de búsqueda y la búsqueda de textos

Las ayudas de búsqueda son un excelente escenario para las búsquedas de texto en SAP HANA.

Los usuarios en ocasiones buscan un conjunto de datos muy grande sin saber los detalles de entrada o sin tener estos datos a la mano al momento de usar una ayuda de búsqueda.

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

La función de búsqueda de textos en SAP HANA nos permite buscar textos de manera similar a las búsquedas realizadas en internet.

-> Tienen una cierta tolerancia a errores y pueden procesar términos multilingües.

A este tipo de búsquedas se les conoce como "Búsqueda difusa" o "Fuzzy search".

1.3- Reconocimiento de patrones.

El reconocimiento de patrones en textos y documentos representa un tipo diferente de análisis de texto.

Esta función podría usarse para identificar posibles datos duplicados al momento de la captura.

1.4- Reconocimiento de patrones SAP HANA.

Esta función no solo nos permite realizar búsquedas dentro de textos, sino también extraer información adicional de los mismos.

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

Su principal objetivo es proporcionar a los usuarios una usabilidad optimizada en las interfaces de búsqueda.

>> Características de la búsqueda de textos en SAP HANA.

-> Búsqueda de estilo libre

No es necesario conocer las columnas en las cuales debe realizarse la búsqueda, el usuario puede escribir toda una serie de datos en un mismo campo de entrada e incluir todas las características técnicas.

-> Búsqueda tolerante a errores (Búsqueda difusa o Fuzzy search).

El usuario puede escribir los datos con algunos errores en sus solicitudes de búsqueda.

-> Búsqueda lingüística y búsqueda de sinónimos.

Incluye variantes lingüísticas y sinónimos.

-> Sugerencias de valor.

El sistema identifica los posibles resultados de búsqueda y los presenta al usuario en tiempo real.

-> Ranking de resultados.

Presenta primero los resultados con mayor probabilidad.

-> Facetas de búsqueda.

Los resultados son contados y agrupados según los criterios de búsqueda.

-> Análisis de texto (particularmente análisis de sentimiento).

Se extrae información adicional de los textos con el fin de obtener información de aspectos semánticos.

2.1- Búsqueda tolerante a errores.

Los datos no tienen que corresponder exactamente con la solicitud de búsqueda, de esta manera se incluyen entradas similares a los resultados.

Los algoritmos matemáticos determinan el grado en que un registro de datos debe corresponder a la solicitud de búsqueda.

Se realiza un calculo para decidir si el registro de datos es lo difícilmentemente parecido a la búsqueda solicitada.

Es muy complicado poder identificar el grado de similitud entre los textos, por lo cual se usan variantes y heurísticas las cuales presentan ventajas y desventajas según el escenario.

La función de búsqueda de SAP HANA determina un valor entre 1 y 0 para indicar que tanto parecido tienen.

Como programadores debemos definir un valor entre 0 y 8 por ejemplo para clasificar el conjunto de datos buscado en base a la solicitud.

-> Expresiones utilizadas en las búsquedas.

Podemos usar un conjunto de expresiones simples que permiten formular la solicitud para que sea más precisa.

>> Algunas expresiones de búsqueda:

-> lufthansa o united

- Muestra los resultados similares a "lufthansa" o "united"

-> airline-united

- Muestra los resultados similares a "airline" pero no "united".

-> "south air"

- Muestra los resultados que son similares al texto completo "south air" y no a sus componentes "south" y "air"

-> Listas de sinónimos.

- Podemos almacenar listas de sinónimos para que las búsquedas puedan basarse en ellas, esto resulta útil para abreviaturas y conceptos específicos de la industria.

-> Stop words

- Son consideradas menos importantes que otras palabras, también denominadas noise words.

3- Tipos de datos de texto e índices de texto completo en SAP HANA.

El tipo de datos "SHORTTEXT" es usado para cadenas de caracteres de determinada longitud.

El tipo "TEXT" representa un objeto grande.

Los textos son fragmentados en tokens que forman la base para la búsqueda y análisis.

-> Soporte en ABAP.

Actualmente no hay soporte nativo disponible en ABAP para los tipos de datos "SHORTTEXT y TEXT", por lo que no se puede crear una tabla en el DDIC que use estos tipos de datos.

Aun que la búsqueda difusa es compatible con otros tipos de datos como los son "VARCHAR" y "NVARCHAR" la compatibilidad no es tan extensa.

Sin la capacidad de dividir los textos en tokens el sistema no puede reconocer una permutacion de palabras, que es estándar en los buscadores modernos.

-> Índice de texto completo (Full Text Index)

Lo que se puede hacer es agregar la funcionalidad ofrecida por los tipos de datos de texto a una columna específica creando un índice de texto completo. Así podemos habitar las funciones de búsqueda de texto y análisis de texto para la mayoría de los tipos de carácter del diccionario de datos.

Al crear un índice de texto el sistema crea una columna invisible de tipo "TEXTO" optimizada para las solicitudes de búsqueda. De esta manera el texto se fragmenta en tokens y se genera un diccionario adicional.

-> Usando SQL para la creación.

Podemos crear el índice de texto completo usando la sentencia SQL "CREATE FULLTEXT INDEX".

-> Creación en el diccionario de datos ABAP (DDIC)

La siguiente instrucción SQL crea un índice de texto completo:

- CREATE FULLTEXT INDEX scarr-name ON scarr(carrname):

NOTA: Debido a que antes de ABAP 7.4 no se podía crear un índice de texto completo en la TX SE11, estos índices no se pueden transportar automáticamente.

A partir de ABAP 7.4 ya es posible crear un índice de texto completo a través del DDIC.

Para crearlo debemos usar la SE11, que más bien es un índice de extensión (para una extensión sin modificar una tabla estándar de SAP).

4- Uso de la búsqueda de textos a través de SQL

-> La palabra clave CONTAINS

Podemos invocar la búsqueda de texto a través de SQL.

Al usar la sentencia SELECT debemos agregar la instrucción CONTAINS, la cual permite llamar múltiples variantes para búsqueda de texto.

- SELECT (campos)

- FROM (tabla o vista)

- WHERE CONTAINS (columnas, solicitud de búsqueda, parámetro)

-> CONTAINS para búsqueda difusa (Fuzzy search)

- SELECT *

- FROM scarr

- WHERE CONTAINS (carrname, 'lusthansa', FUZZY(0.8))

>> Aun que la consulta contiene 2 ("l" minúscula y "s" letra incorrecta) errores el sistema devuelve el registro esperado "Lufthansa".

-> El parámetro FUZZY

Define el valor de umbral para obtener resultados relativamente similares a lo solicitado, el valor 0.7 o 0.8 es un buen valor estándar. El parámetro FUZZY tiene muchas otras opciones de configuración.

-> Búsqueda Exacta / Búsqueda Linguística

La sentencia CONTAINS puede ser usada también con las variantes EXACT y LINGUISTIC.

En las búsquedas donde usemos EXACT el sistema busca resultados exactos con palabras completas para la solicitud.

EXACT es el valor predeterminado si no indicamos ningún parámetro.

También debemos usar los comodines "*" en la solicitud de búsqueda.

CONTAINS a diferencia de LIKE de SQL estándar, nos permite buscar en varias columnas.

Si no existe un índice de texto completo en la columna, los nombres no se dividirán en tokens.

4.1- Búsqueda difusa (Fuzzy search)

Podemos usar la función de búsqueda difusa para una búsqueda simple o en varias columnas.

CONTAINS nos permite indicar varias columnas para que sean consideradas en la búsqueda.

5- Uso de la búsqueda de textos en ABAP.

Las ayudas de búsqueda son una excelente opción para utilizar la búsqueda de textos, para ello debemos crear la ayuda de búsqueda en el DDIC.

A partir de ABAP 7.4 es posible mostrar los valores directamente a los usuarios mientras están ingresando el texto, aun que para ello existen algunos requisitos para poder usar las opciones avanzadas en ayudas de búsqueda.

- Contar con ABAP 7.4 SP06 o superior.

- Tener instalado almenos SAP GUI 7.3 para Windows

- Tener instalado SAP GUI 7.4 para Java/Html.

-> Para crear una ayuda de búsqueda usaremos la TX SE80 o SE11 y seleccionar una tabla o vista como fuente de datos.

- En las "Enhanced Options" de la ayuda de búsqueda podemos indicar:

- Si los valores se muestran directamente.

- Si se ejecuta una búsqueda de texto en varias columnas

- Y el nivel de detalle a aplicar.


 

 

 


Sobre el autor

Publicación académica de Jesús Heriberto Quiñonez López, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Jesús Heriberto Quiñonez López

Profesión: Desarollador de Software - Mexico - Legajo: KH27S

✒️Autor de: 14 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Mi nombre es heriberto quiñonez. actualmente me desempeño como analista de desarrollo de aplicaciones y sistemas. estoy en búsqueda de mi desarrollo y crecimiento tanto personal como profesional.

Certificación Académica de Jesús Quiñonez