🚀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

- Ayúdas de búsqueda y búsqueda de texto: La función de búsqueda de texto de SAP HANA permite desarrollar ayúdas de búsqueda que funcionan de manera similar a las búsquedas modernas de internet, proporcionan cierta tolerancia a los errores, este tipo de busquedas son conocidas como Busqueda difusa o Fuzzy search.

-Reconocimiento de patrones: Ser similar podría seignificar que son casi idénticos.

- Reconocimiento de patrones en SAP HANA: No solo permite realizar búsquedas dentro de los textos y extraer información adicional de los textos, el análsis de sentimientos es parte de la funcionalidad del motor de texto en SAP HANA y permite reconocer patrones en estos tipos de datos no estucturados.

CARACTERÍSTICAS DE LA BÚSQUEDA DE TEXTO DE SAP HANA

- Búsqueda estilo libre: El usaurio no necesita saber las columnas exactas de la BD en la que se supone se realizará la búsqueda.

- Búsqueda tolerante a errores ( búsqueda difusa o fuzzy search ): El usuario pued variar la ortografía ligeramente en su solicitud de búsqueda

- Búsqueda lingüistica y büsqueda de sinónimos: Se incluyen variantes lingüísticas y búsqueda de sinónimos

- Sugerencias de valor: El sistema identifica los resultados probables, mientras el usaurio escribe y los presenta al usaurio en tiempo real.

- Ranking de resultados: La secuencia de los resultados de la búsqueda se optimiza, para que los resultados con la taza de probabilidad más alta se presenten en la parte superior de la lista.

- Facetas de búsqueda: Los resultados de búsqueda se centan y agrupan según criterios específicos. Por ejemplo al buscar aerolineas podemos ver la distribución de las aerolíneas por país.

- Análisis de texto (particularmente análisis de sentimiento): Se extrae información adicional de los textos, lo que permite obtener información sobre aspectos semánticos.

BÚSQUEDA TOLERANTE A ERRORES

La búsqueda difusa o tolerante a errores (fuzze search), los datos no tienen que corresponder exactamente con la solicitud de búsqueda, por lo que se incluyen entradas similares en el conjunto de resultados. Se emplean algoritmos matemáticospara la búsqueda. La funciónde búsqueda de texto determina un valor entre 0 y 1 que marca el grado de smiltud

Expresiones utilizadas en las búsquedas:

-lufthansa o united: obtiene resultados similarea a "lufthansa" o "United"

-airline-united : Los resultados que son similares a "airline" pero no a "united"

- "south air" : Resultados similares a la expresión entera.

Búsqeda lingüistica:

Para determinar el grado de similtud, es útil incluir aspectos gramáticales y otros aspectos lingüisticos. Ofrece oportunidades para el manejo de textos multilingües y solicitdes de búsqueda.

Lista de sinónimos:

La búsqueda difusa puede extenderse por listas de sinónimos. Podemos almacenar ua lista de términos que son equivalentes a un término en específico, la solicitud de búsqueda puede luego basarse en esta lista. Esta característica es útil para abreviaturas y conceptos específcos de la industria.

Stop Words (noise words)

Familiarizar el sistema con las características semánticas de téminos específicos. Se consideran menos importantes que otras palabras

TIPOS DE DATOS DE TEXTO, ÍNDICES DE TEXTO COMPLEO EN SAP HANA

TEXT y SHORTTEXT, representan 2 tipos de datos que se dedican a búsquedas de texto y análisis. SHORTTEXT se usa para cadenas de carácteres de una longitud determinada, mientras que TEXT representa un objeto grande. Los textos se fragmentan internamente en tokens que forman la base para búsquedas y análisis.

- Soporte en ABAP: Actualmente no hay soporte nativo disponible en ABAP para los tipos de datos TEXT y SORTTEXT, or lo que es imposible crear una tabla a través del DDIC. Aunque la función de búsqueda difusa es compatible con tipos de datos como VARCHAR y NVARCHAR, la compatibilidad no es suficientemente extensa. Sin la capacida de dividir textos en tokens de búsqueda, el sistema no puede reconocer una permutación de palabras.

- Índice de texto completo ( Full Text Index). Se puede agregar funcionalidad ofrecida por los tios de datos de texto a una columna específica mediante un índice de texto completo y se pueden habilitar las funciones de búsquda de texto para la mayoría de los tipos DDIC de tipo carácter.

Cuando se crea un índice de texto completo para una columna de una tabla, el sistema crea una columna interna invisible del tipo TEXTO, que contiene los mismos datos pero en una presentación optimizada para las solicitudes de búsqueda, por lo que el texto se fragmenta en tokens y se genera un diccionario adicional.

- Usando SQL para la creación

SQL CREATE FULLTEXT INDEX

CREATE FULLTEXT INDEZ <index_name> ON <table_name> ( <column name> ) [<parameter list>]

*El nombre del indice de texto copleto debe ser unico dentro de un esquema, por lo que tiene sentido prefijar el nombre del índice con el nombre de la tabla de BD para evitar posibles conflictos de nombres

CREACIÓN EN EL DICCIONARIO DE DATOS ABAP (DDIC)

La siguiente instucción define un índice de texto a la columna CARRNAME de la tabla SCARR:

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

Debido a que no se pueden crear índices de texto completo através del DDIC antes de la versión 7.4 de ABAP, estos índices no se pueden transportar automáticamente.

- Definir un nuevo índice para una tabla utilizando la transacción SE11, más bien un índece de extensión ( para una extensión sin modificación de una tabla estándar SAP). El cual contiene solo la columna requerido como un campo y se crea exclusivamente en la BD SAP HANA

- A través de Goto / Full Text Index se puede activar e índice de texto complto y configurar una variedad de parámetros que corresponde a los parámetros de la sentencia CREATE FULLTEXT INDEX mencionados anteriormente.

La config. estándar y la config. de idioma suelen ser suficientes para una búsqueda difusa.

BÚSQUEDA DE TEXTOS A TRAVÉ DE SQL

Palabra CONTAINS

En la sentencia SELECT se debe usar la palabra CONTAINS, que permite llamar múltiples variantes de la búsqueda de texto. La sintáxis es la siguiente:

SELECT <field list> FROM <table overview> WHERE CONTAINS (<columns>, <search request>, <parameter>);

Ejemplo: SELECT * FROM scarr WHERE CONTAINS( carrname, 'lusthansa', FUZZY(0.8)); El resultado es "Lufthansa"

Parámetro FUZZY

FUZZY (0.8) define el valor de ubral, donde un valor entre 0.7 y 0.8 suele ser un buen valor estándar para obtener valore relativamente similares a la solicitud de búsqueda

Búsqueda exacta/ Búsqueda Lingüistica

La sentencia CONTAINS se pede usar en otras 2 variantes: EXACT y LINGUISTIC.

EXACT: El sitema busca coincidencias exactas con las palabras completas, también se pueden utilizar comodines como '*'.

A diferencia del LIKE en SQL, la claúsula CONTAINS nos permite realizar búsquedas en varias columnas.

Ejemplo: SELECT * FROM scarr WHERE CONTAINS ((carrname,url), 'Airlines OR Airways OR *.com', EXACT)

* Limitaciones de combinaciones compatibles. Sólo se puede usar la claúsula CONTAINS en tablas que sean columnares, y no se puede utilizar la función búsquedas de texto para los atributos calculados de una vista.

BÚSQUEDA DIFUSA (FUZZY SEARCH)

La cláusual CONTAINS nos permite especificar varias columnas para que sean consideradas en la ejecución de búsqueda..

SELECT * FROM spfli WHERE CONTAINS ((cityfrom,cityto), 'Tokio', fuzzy(0.8))

El resultado contendrá todos los vuelos que salen y llegan a Tokio.

* Existen funcionales escalares especiales. como:

SCORE, proporciona información sobre el grado de similtud entre el resultado y la solicitud de búsqueda que oscila entre 0 y 1, se usa para ordenar los resultado de la búsqueda de modo que se muestre en la parte superior el que tiene mayor grado similtud.

HIGHLIGTHED: En textos más largos se usa para encontra textos completos con la ubicación encontrada resaltada.

SNIPPETS: Se devuelve una parte del texto al rededor de la ubicación encontrada

USO DE LA BÚSQUEDA EN TEXTOS EN ABAP

Las ayúdas de búsqueda son una buena opción para utilizar la búsqueda de textos en SAP HANA, la cual se debe crear en el diccionario de datos ABAP. Para usar las opciones avanzadas de las ayúdas de búsqueda se debe contar con ABAP 7.4 SP06 o superior y tener instalado al menos SAP GUI 7.3 para Windows o SAP GUI 7.4 para Java/Html.

- Utilizar transacción SE11 o SE80 para crear nueva ayúda de búsqueda y seleccionar una tabla o vista como fuente de datos.

- En la pestaña "opciones ampliadas", se puede seleccionar si los valores se muestran directamente, 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 para este propósito. Después de la activación se puede integrar la ayúda de búsqueda con un programa.

PARAMETER: cust_id TYPE s_customer MATCHCODE OBJECT zsh_prueba


 

 

 


Sobre el autor

Publicación académica de Lucero Miriam Tapia Cruz, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Lucero Miriam Tapia Cruz

Profesión: Abap Sr. Ceritificado / Abap Crm - Mexico - Legajo: FD25L

✒️Autor de: 13 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

disponibilidad laboral fulltime

Certificación Académica de Lucero Tapia