Oracle Text
Oracle Text (Oracle interMedia Text, ConText)
Oracle Text es el motor de búsqueda full-text integrado en Oracle Database. Permite indexar y consultar grandes volúmenes de texto estructurado y no estructurado directamente dentro de la base de datos, sin dependencias externas y sin licencia adicional respecto a la Standard o Enterprise Edition.
Cómo funciona #
Oracle Text construye índices especializados (CONTEXT, CTXCAT, CTXRULE o CTXPATH) sobre columnas de texto. El índice CONTEXT es el más habitual: tokeniza el texto, aplica stemming y stoplists, y almacena las posiciones de los tokens en estructuras internas optimizadas para la búsqueda.
Las consultas se realizan mediante el operador CONTAINS en la cláusula WHERE:
SELECT doc_id, title
FROM documents
WHERE CONTAINS(body, 'database AND performance', 1) > 0
ORDER BY SCORE(1) DESC;
El índice debe sincronizarse manualmente o mediante una tarea programada con CTX_DDL.SYNC_INDEX tras operaciones DML, ya que no se actualiza en tiempo real dentro de la transacción.
Cuándo utilizarlo #
Oracle Text es la opción adecuada cuando:
- el volumen de texto hace inviable el uso de
LIKEoREGEXP_LIKEsin degradación del rendimiento; - se necesitan funcionalidades avanzadas como búsqueda por proximidad, fuzzy matching, expansión temática o resaltado de resultados;
- los documentos ya residen en Oracle Database y mover los datos a un motor externo (Elasticsearch, Solr) introduciría una complejidad arquitectónica no justificada.
La principal limitación es la sincronización del índice: en escenarios con alta tasa de escritura, el desfase entre el DML y la actualización del índice debe planificarse de forma explícita.