🚀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

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

SAP HANA nos permite desarrollar ayudas de búsqueda que funcionan de manera similar a las búsquedas modernas de Internet. Proporcionan una cierta tolerancia a los errores y pueden procesar términos y sinónimos multilingües.

Reconocimiento de patrones en SAP HANA

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

La función de análisis de texto no sólo nos permite realizar búsquedas dentro de los textos, sino también extraer información adicional de los textos.Por ejemplo, podemos reconocer las relaciones o incluso las intenciones dentro de los textos.

En una tienda online, nos permitiría analizar si un producto específico provoca comentarios más positivos o negativos.

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

Las características de la búsqueda de textos en SAP HANA son:

  • Búsqueda de estilo libre: El usuario no necesita saber las columnas exactas de la base de datos en las que se supone que se realizará la búsqueda.
  • Búsqueda tolerante a errores (búsqueda difusa o fuzzy search): El usuario puede variar la ortografía ligeramente en sus solicitudes de búsqueda.
  • Búsqueda lingüistica y búsqueda de sinónimos
  • Sugerencias de valor: El sistema identifica de manera eficiente los resultados de búsqueda probables mientras el usuario escribe y los presenta al usuario en tiempo real.
  • Ranking de resultados: La secuencia de los resultados de la búsqueda se optimiza para que los resultados de la tasa de probabilidad más altas se presenten en la parte superior de la lista.
  • Facetas de búsqueda: Los resultados de la búsqueda 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, que nos permite obtener información sobre aspectos semánticos.

Búsquedas tolerantes 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. Los algoritmos matemáticos determinan el grado en que un registro de datos debe corresponder a la solicitud de búsqueda. El resultado del cálculo es un valor numérico. La función de búsqueda de textos en SAP HANA determina un valor entre 0 y 1. Como programador, debemos definir un valor de umbral (por ejemplo 0,8), a partir del cual un valor de conjunto de datos que se ha buscado se clasifica de acuerdo con la solicitud.

Además se puede adaptar para tipos de datos específicos (semánticos). Por ejemplo, en la búsqueda de una fecha, 01/01/1909 no es similar a 01/01/1990.

Expresiones utilizadas en las búsquedas:

Búsqueda linguística: Se reconocen las palabras como "casa", "casas", "vivienda", etc.

Lista de sinónimos: Es útil para abreviaturas y conceptos específicos de la industria.

Stop words: No todos los términos en una solicitud de búsqueda tienen la misma selectividad. Por ejemplo, es más importante el nombre de la empresa que el término "S.A.". Podemos ingresar una lista de stop words (o noise words) que se consideran menos importantes que otras palabras (artículos, pronombres, etc).

Tipos de datos e índices de texto completo en SAP HANA

La búsqueda difusa en SAP HANA se basa en los tipos de datos del almacen de columnas. El tipo SHORTTEXT se usa para cadenas de caracteres de una longitud determinada, mientras que TEXT representa un objeto grande. Los textos se fragmentan en tokens, que forman la base para búsquedas y análisis. Desafortunadamente, en ABAP no hay soporte nativo disponible para estos tipos, lo que hace que sea imposible crear una tabla a través del DDIC con estos tipos de datos. Aunque la función de búsqueda difusa también es compatible con otros tipos de datos (por ejemplo VARCHAR y NVARCHAR), esta compatibilidad no es lo suficientemente extensa. Sin la capacidad de dividir los textos en tokens, el sistema no puede reconocer la permutación de palabras.

Índice de texto completo (Full Text Index)

Debe ser único dentro de un esquema. Cuando creamos un índice de texto completo para una columna de la tabla, el sistema crea una columna interna invisible del tipo TEXTO, que contiene los mismos datos pero en una representación optimizada para las solicitudes de búsqueda. En este contexto, el texto se fragmenta en tokens y se genera un diccionario adicional.

CREATE FULLTEXT INDEX <index name>

ON <table name> ( <column name> )

[<parameter_list>]


Ej: CREATE FULLTEXT INDEX scarr~name ON scarr(carrname);

A partir de la versión 7.4, también es posible crearlos a través del DDIC. En la SE11 debemos definir un índice para una
tabla, 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 sólo la columna requerida como un campo y se crea exclusivamente en la base de datos SAP HANA.

A través de Goto -> Full Text Index, podemos activar el índice de texto completo y configurar una variedad de parámetros, que corresponden a la sentencia anteriormente vista. La configuración estándar y la de idioma suelen ser suficientes para una búsqueda difusa.

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

La palabra clave CONTAINS:

SELECT <field_list>

FROM <table or view>

WHERE CONTAINS (<columns>,<search_request>,<parameter>);


Ej: SELECT * FROM scarr WHERE CONTAINS ( carrname, 'lusthansa', FUZZY(0.8)); --> Lufthansa


Búsqueda exacta / Búsqueda linguística:

La adición EXACT busca coincidencias exactas con palabras completas. Representa el valor predeterminado. Podemos usar los comodines '*'. A diferencia de LIKE, la cláusula CONTAINS nos permite realizar búsquedas en varias columnas.


HIGHLIGHTED devuelve todo el texto con la coincidencia resaltada. SNIPET devuelve un fragmento de texto alrededor de la coincidencia.


Uso de la búsqueda de textos en ABAP

Como desarrollador, podemos definir una ayuda de búsqueda especificando el nombre de una tabla o vista, y seleccionando los campos para el cuadro de diálogo. A partir de ABAP 7.4 SP06, también podemos especificar los parámetros para una búsqueda aproximada aquí. Utilizaremos la SE11. En las opciones avanzadas (Enhanced Options), 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. No es necesario crear un índice de texto completo para este propósito.


 

 

 


Sobre el autor

Publicación académica de Sergio Ariel Del Sordo, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Sergio Ariel Del Sordo

Profesión: Analista Programador Abap - Argentina - Legajo: LE26W

✒️Autor de: 13 Publicaciones Académicas

🎓Egresado del módulo:

Presentación:

Soy analista programador universitario y la mayor parte de mi actividad laboral la desarrollé como programador abap. me interesa aprender sobre hana, ya que es lo que se está usando en las empresas.

Certificación Académica de Sergio Del