Introducción a Oracle Text

Lo primero que me gustaría comentar es que se puede crear un potente sistema de gestión documental mediante Oracle Text. Quería empezar el artículo con esta referencia, debido a que me he encontrado en algunos proyectos donde se dispone de licencia Oracle y a la hora de implementar una aplicación utilizan otros gestores documentales externos a la Base de Datos, y no se llega a plantear la posibilidad de hacer uso de Oracle Text.

¿Qué es Oracle Text?

Oracle Text, anteriormente conocido como interMedia Text y ConTextOracle, utiliza SQL estándar para indexar, buscar y analizar datos de texto almacenados en una base de datos Oracle, archivos planos y en la web. Oracle Text También puede realizar un análisis lingüístico de documentos, así como de búsqueda de texto usando una variedad de estrategias que incluyen la palabra clave de búsqueda, las consultas de contexto, operadores booleanos, coincidencia de patrones, mezclando consultas temáticas, búsquedas de secciones HTML / XML, y más.

Acerca de Oracle Text…

Oracle Text soporta la creación de tres tipos de indices dependiendo de la aplicación y el origen del texto. Se usará la cláusula CREATE INDEX para crear todos los tipos de Oracle Text indexes.

A continuación se describen los tipos de indice y el tipo de aplicación que se puede construir con ellos, como el operador que utilizaremos en las querys para usar el índice.

Tipo de índice Tipo de Aplicación Operador
CONTEXT Utilizar el índice para crear una aplicación de recuperación de texto cuando el texto se encuentra en grandes documentos. Puede indexar documentos de diferentes formatos, como Microsoft Word, PDF, HTML, XML o texto plano. CONTAINS
CTXCAT Utilizar este tipo de índices para mejorar el rendimiento de consultas mixtas. Apto para realizar consultas de pequeños fragmentos de texto con criterios estructurados como fechas, nombres de elementos y precios que se almacenan en las columnas. CATSEARCH
CTXRULE Se utilizan para construir aplicaciones de clasificación de documentos. Se crea el índice en una tabla de consultas, donde cada consulta tiene una clasificación. MATCHES

Mantenimiento de los Indices

A la hora de pensar en el mantenimiento de los índices hay que tener en cuenta su optimización y sincronización. Dicho mantenimiento es necesario después de producirse un insert, update o delete en la tabla base. Si dicha tabla base es estática, es decir, no se realizan insert, updates o deletes sobre ella después de su creación, no será necesario sincronizar el índice.

Por el contrario si dicha tabla no es estática, tendremos que sincronizar el índice, ya sea de forma manual o automática. La forma manual se puede llevar a cabo con el procedimiento  CTX_DDL.SYNC_INDEX. 

Si sincronizamos el índice regularmente, debemos considerar optimizar el índice para reducir fragmentación y eliminar datos antiguos. En posteriores artículos se implementará un ejemplo de creación y mantenimiento de dichos índices, por el momento sólo me interesa exponer los principios teóricos sobre Oracle Text.

Deja un comentario