ibm i: omnifind text search server for db2 for i un índice de búsqueda de texto . . . 14 buscar en...

170
IBM i Versión 7.2 Negocio electrónico y servicio Web OmniFind Text Search Server for DB2 for i

Upload: dinhkhanh

Post on 22-May-2018

248 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

IBM iVersión 7.2

Negocio electrónico y servicio WebOmniFind Text Search Server for DB2for i

���

Page 2: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos
Page 3: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

IBM iVersión 7.2

Negocio electrónico y servicio WebOmniFind Text Search Server for DB2for i

���

Page 4: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

AvisoAntes de utilizar esta información y el producto al que hace referencia, lea la información del apartado “Avisos” en lapágina 157.

Este documento puede contener referencias al código interno bajo licencia. El código interno bajo licencia es códigode máquina cuya licencia se obtiene bajo los términos del Acuerdo de licencia de IBM para código de máquina.

© Copyright IBM Corporation 2002, 2014.

Page 5: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Contenido

OmniFind Text Search Server for DB2for i . . . . . . . . . . . . . . . . 1Novedades de IBM i 7.2 . . . . . . . . . . 1Archivo PDF para OmniFind Text Search Server forDB2 for i . . . . . . . . . . . . . . . 1Introducción a OmniFind Text Search Server for DB2for i . . . . . . . . . . . . . . . . . 2

Visión general de OmniFind Text Search Server forDB2 for i . . . . . . . . . . . . . . 2Requisitos del sistema para la instalación deOmniFind Text Search Server for DB2 for i . . . 4

Conceptos clave . . . . . . . . . . . . . 4Crear y actualizar un índice de búsqueda de texto 4Indexación asíncrona y desencadenantes . . . . 5Formatos de documento soportados . . . . . 6Tipos de datos soportados . . . . . . . . . 7Puntuación de texto y soporte de sinónimos . . . 7Proceso lingüístico . . . . . . . . . . . 8

Idiomas soportados . . . . . . . . . . 8Proceso lingüístico de documentos en chino,japonés y coreano. . . . . . . . . . . 9

Nombre de alias de servidor. . . . . . . . 11Instalar y configurar funciones de búsqueda detexto. . . . . . . . . . . . . . . . . 12

Instalar OmniFind Text Search Server for DB2 fori . . . . . . . . . . . . . . . . . 12Iniciar funciones de búsqueda de texto . . . . 13Crear un índice de búsqueda de texto . . . . 14Actualizar un índice de búsqueda de texto . . . 14Buscar en un índice de búsqueda de texto . . . 14Recorte de documentos . . . . . . . . . 15

Procedimientos almacenados de administración parabúsqueda de texto . . . . . . . . . . . . 15

SYSPROC.SYSTS_START . . . . . . . . . 15SYSPROC.SYSTS_STOP . . . . . . . . . 17SYSPROC.SYSTS_CREATE . . . . . . . . 19SYSPROC.SYSTS_ALTER . . . . . . . . . 28SYSPROC.SYSTS_DROP . . . . . . . . . 34SYSPROC.SYSTS_UPDATE . . . . . . . . 36SYSPROC.SYSTS_SHUTDOWN. . . . . . . 39

Buscar con un índice de búsqueda de texto . . . . 40CONTAINS . . . . . . . . . . . . . 40SCORE . . . . . . . . . . . . . . . 43Sintaxis de argumentos de búsqueda . . . . . 45

Ejemplos de consulta simple. . . . . . . 47Operadores de búsqueda avanzada . . . . 48Búsqueda de caracteres especiales . . . . . 50Ejemplo de utilización de las funcionesCONTAINS y SCORE . . . . . . . . . 53

Búsqueda XML . . . . . . . . . . . . 53Soporte de espacio de nombres en búsquedasXML. . . . . . . . . . . . . . . 59Utilizar espacios de nombres en una búsqueda 61Ejemplo de búsqueda XML . . . . . . . 65Gramática de consultas de búsqueda XML . . 68

Administrar un OmniFind(r) Text Search Server forDB2(r) for i . . . . . . . . . . . . . . 69

Iniciar OmniFind Text Search Server for DB2 for i 70Detener OmniFind Text Search Server for DB2 fori . . . . . . . . . . . . . . . . . 70Salvar y restaurar índices de búsqueda de texto 71

Salvar y restaurar un índice de búsqueda detexto sin datos . . . . . . . . . . . 71Salvar y restaurar un índice de búsqueda detexto con datos . . . . . . . . . . . 73

Determinación de problemas . . . . . . . 74Visualizar y guardar registros del servidor . . . 75Herramientas de administración . . . . . . 76

Herramienta de configuración . . . . . . 76SYSPROC.SYSTS_REMOVE . . . . . . . 78SYSPROC.SYSTS_REPRIMEINDEX . . . . 80SYSTS_CLEAR_INDEXES . . . . . . . 81SYSPROC.SYSTS_VALIDITYCHECK . . . . 82QDBTSLIB.QDBTS_ROWS_STATUS . . . . 83Diccionarios de sinónimos . . . . . . . 85

Añadir un diccionario de sinónimos a unacolección . . . . . . . . . . . . 85Eliminar un diccionario de sinónimos deuna colección . . . . . . . . . . . 86

Buscar índices huérfanos y ausentes . . . . 87Administración avanzada. . . . . . . . 88

Herramienta ServerInstance . . . . . . . . 90Health Checker . . . . . . . . . . . . 91Consideraciones relativas a las ASPindependientes para OmniFind Text SearchServer for DB2 for i. . . . . . . . . . . 92Alta disponibilidad . . . . . . . . . . . 93Análisis del rendimiento . . . . . . . . . 94Consideraciones relativas a las transacciones . . 98Utilización de IBM Navigator for i. . . . . . 99

Trabajar con servidores de búsqueda de texto 99Trabajar con índices de búsqueda de texto 101

Visualizar construcciones de índice debúsqueda de texto . . . . . . . . . 103

Utilizar System i Navigator. . . . . . . . 104Trabajar con servidores de búsqueda de texto 105Trabajar con índices de búsqueda de texto 107

Visualizar construcciones de índice debúsqueda de texto . . . . . . . . . 110

Tablas de administración de búsqueda de texto . . 111Tabla de administraciónQSYS2.SYSTEXTDEFAULTS . . . . . . . 111Tabla de administraciónQSYS2.SYSTEXTINDEXES . . . . . . . . 112Tabla de administraciónQSYS2.SYSTEXTCOLUMNS . . . . . . . 114Tabla de administraciónQSYS2.SYSTEXTSERVERS . . . . . . . . 115Tabla de administraciónQSYS2.SYSTEXTCONFIGURATION . . . . . 116

© Copyright IBM Corp. 2002, 2014 iii

Page 6: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla de administraciónQSYS2.SYSTEXTSERVERHISTORY . . . . . 116Vista Índice de búsqueda de texto . . . . . 117

Ampliaciones para indexar y buscar datos no DB2 118Visión general de las ampliaciones . . . . . 118Crear una colección de búsqueda de texto . . . 119Añadir un conjunto de objetos de datos dearchivo spool . . . . . . . . . . . . 124Eliminar un conjunto de objetos de datos dearchivo spool . . . . . . . . . . . . 128Añadir un conjunto de objetos de datos dearchivo continuo . . . . . . . . . . . 131Eliminar un conjunto de objetos de datos dearchivo continuo . . . . . . . . . . . 133Añadir un conjunto de objetos de archivo físicode origen multimiembro. . . . . . . . . 135Eliminar un conjunto de objetos de archivofísico de origen multimiembro. . . . . . . 137Eliminar un conjunto de objetos . . . . . . 138Actualizar la colección . . . . . . . . . 139Volver a llenar la colección de búsqueda detexto . . . . . . . . . . . . . . . 140

Buscar en la colección . . . . . . . . . 141Consultar información de conjunto de objetos 143Recuperar estado de objetos de índices . . . . 144Obtener objetos no indexados . . . . . . . 145Recuperar estado de colección . . . . . . . 146Eliminar una colección de búsqueda de texto 148Modificar una colección de búsqueda de texto 149Consideraciones sobre las ASP independientespara las colecciones de búsqueda de texto . . . 152Consideraciones sobre la copia de seguridad yrestauración de colecciones de búsqueda detexto . . . . . . . . . . . . . . . 152

Mensajes y códigos . . . . . . . . . . . 153Mensajes de OmniFind . . . . . . . . . 153

Avisos . . . . . . . . . . . . . . 157Información de la interfaz de programación . . . 159Marcas registradas. . . . . . . . . . . . 159

Índice. . . . . . . . . . . . . . . 161

iv IBM i: OmniFind Text Search Server for DB2 for i

Page 7: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

OmniFind Text Search Server for DB2 for i

OmniFind Text Search Server for DB2 for i permite emitir sentencias SQL que satisfagan las consultas debúsqueda de texto habituales en documentos almacenados en una base de datos DB2.

Nota: Al utilizar los ejemplos de código, acepta los términos del apartado “Información sobre licencia decódigo y exención de responsabilidad” en la página 156.

Novedades de IBM i 7.2Información relativa a las novedades o cambios significativos realizados en el temario de OmniFind TextSearch Server for DB2 for i.

Las principales características nuevas son las siguientes:v “Ampliaciones para indexar y buscar datos no DB2” en la página 118

– “Añadir un conjunto de objetos de archivo físico de origen multimiembro” en la página 135– “Añadir un conjunto de objetos de datos de archivo continuo” en la página 131– “Modificar una colección de búsqueda de texto” en la página 149– Eliminar conjunto de objetos por atributo

- “Eliminar un conjunto de objetos de datos de archivo spool” en la página 128- “Eliminar un conjunto de objetos de datos de archivo continuo” en la página 133- “Eliminar un conjunto de objetos de archivo físico de origen multimiembro” en la página 137

v “Búsqueda de caracteres especiales” en la página 50v Eliminar índices huérfanosv Concluir servidorv Comprobar el estado y el código de retorno para cada fila en estado de aviso o de errorv Soporte de RCAC

– Crear índice de búsqueda de texto protegido– Modificar índice de búsqueda de texto a índice protegido

Cómo visualizar las novedades o cambios

Para facilitar la visualización de los cambios técnicos, el Information Center utiliza:v La imagen de para marcar el inicio de información nueva o modificada.v La imagen de para marcar el final de la información nueva o modificada.

En los archivos PDF, puede que observe barras de revisión (|) en el margen izquierdo de la informaciónnueva o modificada.

Para buscar otra información relativa a las novedades o cambios de este release, consulte elMemorándum para los usuarios.

Archivo PDF para OmniFind Text Search Server for DB2 for iUtilice esta página para visualizar e imprimir un PDF de esta información.

Para visualizar o descargar el archivo PDF de este documento, seleccione OmniFind Text Search Serverfor DB2 for i (aproximadamente 1192 KB).

© Copyright IBM Corp. 2002, 2014 1

Page 8: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Otra información

También puede visualizar o imprimir cualquiera de estos archivos PDF:

v Preparing for and Tuning the SQL Query Engine on DB2 for i5/OS

v SQL Performance Diagnosis on IBM® DB2 Universal Database for iSeries

.

Guardar archivos PDF

Para guardar un PDF en la estación de trabajo a fin de visualizarlo o imprimirlo:1. Pulse con el botón derecho del ratón el PDF en el navegador (pulse con el botón derecho del ratón el

enlace precedente).2. Pulse la opción que guarda el PDF localmente.3. Vaya al directorio en el que desee guardar el PDF.4. Pulse Guardar.

Descargar Adobe Reader

Es necesario tener instalado Adobe Reader en el sistema para visualizar o imprimir estos archivos PDF.

Puede descargar una copia gratuita desde Adobe (http://get.adobe.com/reader/) .

Introducción a OmniFind Text Search Server for DB2 for iDB2 for i utiliza OmniFind(r) Text Search Server como motor de indexación y búsqueda de losdocumentos almacenados en una base de datos DB2.

OMNIFIND es un producto de búsqueda de texto que permite a los usuarios de IBM i realizar búsquedasen texto no estructurado almacenado en una columna de una tabla de DB2 for i. El texto almacenado enla columna puede ser texto simple de tipo carácter, un documento XML o alguno de los diversos tipos dedocumentos de texto enriquecido, como por ejemplo un archivo PDF o DOC. El producto permite a losusuarios indexar datos no estructurados sin necesidad de analizarlos en un formato estructurado, comopor ejemplo una tabla SQL.

OmniFind Text Search Server es un motor de búsqueda según contexto. Da soporte a la prestación debúsquedas aproximadas. Por ejemplo, la búsqueda de 'mice' (ratón, en inglés) descubrirá los documentosque contienen 'mice' (ratones, en inglés) o 'mouse'. El motor de búsqueda también da soporte al contextoidiomático. Por ejemplo, comprende los equivalentes de búsqueda aproximada de 'mice' y 'mouse' tantoen inglés como en español.

Muchas aplicaciones pueden aprovechar esta prestación. Un buen ejemplo de ello es una base de datosde Recursos humanos. Los currículos de los candidatos pueden almacenarse en la base de datos encualquier formato que permita someterlos. Pueden utilizarse búsquedas subsiguientes medianteOmniFind para buscar candidatos potenciales con determinadas habilidades clave.

Visión general de OmniFind Text Search Server for DB2 for iOmniFind Text Search Server for DB2 for i suministra un conjunto de procedimientos almacenadosadministrativos y dos funciones incorporadas: CONTAINS y SCORE. Estas funciones se utilizan pararealizar búsquedas en los índices de texto creados a partir de los documentos almacenados en una tablade DB2. Los procedimientos almacenados administrativos se utilizan para habilitar e inhabilitar labúsqueda de texto y para crear, actualizar y eliminar índices de texto.

2 IBM i: OmniFind Text Search Server for DB2 for i

Page 9: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Un índice de texto puede crearse a partir de cualquier columna de los tipos de datos siguientes:v CHARv VARCHARv CLOBv BLOBv DBCLOBv GRAPHICv VARGRAPHICv BINARYv VARBINARYv XML

Los datos pueden contener texto sin formato, HTML, XML o diversos tipos de documentos enriquecidos,como por ejemplo archivos PDF. Los datos se leen de la columna de texto y se convierten a Unicode(CCSID 1208) antes de indexarlos.

Los índices de texto no son índices DB2 típicos. No se mantienen automáticamente, no pueden registrarsepor diario ni puede realizarse una copia de seguridad de los mismos mediante los métodos típicos decopia de seguridad y restauración. Los índices de texto se crean y almacenan en un servidor de búsquedade texto.

Por omisión, el servidor de búsqueda de texto se crea en el mismo sistema que los datos almacenados enla base de datos DB2. Sin embargo, un servidor de búsqueda de texto puede crearse en otro servidor queejecute IBM i, Linux, UNIX, AIX o Windows.

El servidor de búsqueda de texto contiene una colección de términos significativos extraídos de cada filade la columna. Para la comunicación con el servidor de búsqueda de texto, se utiliza una conexiónTCP/IP.

CONTAINS y SCORE son funciones incorporadas integradas en DB2 for i.

DB2 for i utiliza OmniFind(r) Text Search Server como motor de indexación y búsqueda de losdocumentos almacenados en una base de datos DB2.

OMNIFIND admite varias colecciones. Una colección contiene un índice de búsqueda de texto y lasopciones específicas del índice para analizar, indexar y buscar.

OMNIFIND tiene una interfaz gráfica de usuario para la administración de servidores e índices de texto.

El servidor de búsqueda de texto también suministra procedimientos almacenados SQL y herramientas delínea de mandatos que pueden utilizarse para tareas habituales. Estas tareas habituales incluyen laconfiguración y administración del servidor de búsqueda de texto, la creación de un diccionario desinónimos para una colección y el diagnóstico de problemas.Conceptos relacionados:“Procedimientos almacenados de administración para búsqueda de texto” en la página 15Puede iniciar y detener funciones de búsqueda de texto y crear, eliminar y actualizar índices de búsquedade texto mediante un conjunto de procedimientos almacenados SQL de administración. Estosprocedimientos pueden invocarse desde cualquier interfaz de SQL. No puede llamar a estosprocedimientos desde una línea de mandatos de IBM i mediante mandatos CL.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado que

OmniFind Text Search Server 3

Page 10: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

indica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Requisitos del sistema para la instalación de OmniFind Text SearchServer for DB2 for iAntes de instalar OmniFind Text Search Server for DB2 for i, asegúrese de que el sistema cumple todoslos requisitos de hardware, software y sistema operativo.

Al instalar OmniFind Text Search Server for DB2 for i, el programa de instalación crea un servidor debúsqueda de texto para IBM i. Puede instalar servidores de búsqueda de texto en servidores remotos queejecuten Linux o Windows. Estos servidores forman parte de DB2 Accessories Suite for z/OS (5655-R14)

(http://www-01.ibm.com/software/data/db2imstools/db2tools/accessories-suite/) . El enlacecontiene información relativa a la descarga de la suite.

Requisitos de software

Asegúrese de que el sistema cumple los siguientes requisitos mínimos de software:v 5770JV1 IBM Developer Kit for Java™

– Uno de los siguientes:- 5770JV1 Opción 11 Java SE 6 32 bits- 5770JV1 Opción 12 Java SE 6 64 bits

v DB2 Universal Java Driver instalado y configurado en el servidor de búsqueda de textov Para IBM i, deben estar instalados los programas siguientes:

– 5770SS1 Opción 30 Qshell– 5770SS1 Opción 33 IBM i Portable Application Solutions Environment (IBM i PASE)– 5770SS1 Opción 39 International Components for Unicode– Haber aplicado al sistema el PTF de grupo más reciente para IBM DB2 for i.

Conceptos claveLa comprensión de los conceptos clave acerca de las funciones de búsqueda de texto le ayudará aaprovechar las ventajas de OmniFind Text Search for DB2 for i. Los conceptos clave son los tipos dedocumentos y los idiomas soportados.

Crear y actualizar un índice de búsqueda de textoPuede crear un índice de búsqueda de texto definiendo y declarando las propiedades del mismo. Puedeactualizar un índice de búsqueda de texto añadiendo al mismo datos nuevos de una tabla de DB2.También puede actualizar un índice de búsqueda de texto cambiando los datos existentes en el mismo.

Para cada índice de búsqueda de texto que cree, se creará una colección en OmniFind Text Search Serverfor DB2 for i. Tras la creación inicial, el índice de búsqueda de texto no contiene datos.

Los datos se añaden al índice de búsqueda de texto llamando al procedimiento almacenadoSYSPROC.SYSTS_UPDATE. El primer proceso de actualización añade todos los documentos de texto dela columna de texto al índice de búsqueda de texto. Este proceso se conoce como actualización inicial. Lasactualizaciones subsiguientes son incrementales.

Cuando se crea un índice de búsqueda de texto, se crean o actualizan los objetos siguientes:

4 IBM i: OmniFind Text Search Server for DB2 for i

Page 11: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v La tabla intermedia se crea en la biblioteca QSYS2.v Los desencadenantes INSERT, DELETE y UPDATE se añaden a la tabla base.v Se crea una vista SQL con el nombre del índice de búsqueda de texto en el esquema del índice de

búsqueda de texto. Esta vista contiene información acerca del índice de texto. Por ejemplo, la vistapuede utilizarse para obtener el nombre de la tabla base y el nombre de la tabla intermedia. La vistatambién muestra el número de cambios pendientes realizados en la tabla base que aún no se hanreflejado en el índice de búsqueda de texto.

v Los catálogos de índice de búsqueda de texto (SYSTEXTINDEXES y SYSTEXTCOLUMNS) de labiblioteca QSYS2 se actualizan añadiendo una entrada para el nuevo índice de búsqueda de texto.

Consideraciones relativas a la tabla intermedia:v No realice ninguna operación de base de datos en la tabla intermedia, excepto salvar y restaurar el

archivo o cambiar autorizaciones.v Si está cambiando las autorizaciones sobre la tabla base, cambie también las autorizaciones sobre la

tabla intermedia.

Consideraciones relativas a la tabla base:v No elimine los desencadenantes DELETE, UPDATE e INSERT que se han añadido al crear un índice de

búsqueda de texto.v Al eliminar el índice de búsqueda de texto, se eliminan los desencadenantes.v No modifique ni elimine el valor de ROWID, clave primaria o columna exclusiva utilizado como clave

en el índice de búsqueda de texto.v La modificación de los datos de columna de la tabla base que provocan truncamiento de datos pueden

dar como resultado falsas coincidencias positivas en el índice de búsqueda de texto.Referencia relacionada:“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.“Tabla de administración QSYS2.SYSTEXTCOLUMNS” en la página 114Puede visualizar información acerca de las columnas de texto de un índice de búsqueda de texto en latabla de administración QSYS2.SYSTEXTCOLUMNS. Cada índice de búsqueda de texto tiene un ID deíndice, nombres de columna de texto y el nombre de esquema de la tabla base.

Indexación asíncrona y desencadenantesPuede actualizar el índice de búsqueda de texto en OmniFind Text Search Server for DB2 for imanualmente o planificarlo para que se ejecute automáticamente.

El índice de búsqueda de texto que se conserva en OmniFind Text Search Server for DB2 for i no seactualiza síncronamente cuando se actualiza la tabla de DB2. La actualización de un índice de búsquedade texto es una operación extensa.

En lugar de ello, existen desencadenantes que capturan los cambios realizados en la columna de la tablade DB2 en una tabla de registro local. Esta tabla de registro también se denomina tabla intermedia. Estosdesencadenantes almacenan automáticamente la información relativa a los documentos nuevos,cambiados y suprimidos en una tabla de registro. Cada tabla de registro está asociada a un índice debúsqueda de texto. La aplicación del contenido de la tabla de registro a su índice de búsqueda de textocorrespondiente se denomina actualización incremental.

OmniFind Text Search Server 5

Page 12: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Debe actualizar periódicamente el índice de búsqueda de texto para que los cambios se reflejen en lasconsultas.

Puede actualizar el índice de búsqueda de texto manualmente llamando al procedimiento almacenadoSYSPROC.SYSTS_UPDATE.

Las actualizaciones también pueden planificarse para que se produzcan automáticamente especificando lacláusula UPDATE FREQUENCY en el procedimiento SYSPROC.SYSTS_CREATE al crear el índice detexto.Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.

Formatos de documento soportadosLos datos de una columna de texto pueden ser texto sin formato, un documento HTML, un XML ocualquier documento que el motor de búsqueda reconozca.

OmniFind Text Search Server for DB2 for i analiza los documentos para extraer las partes relevantes yhacer disponibles para las búsquedas. Por ejemplo, los códigos y metadatos de un documento HTML nose indexan.

Está soportado el análisis de los formatos de documento siguientes:v TEXT: texto sin formatov HTML: lenguaje de marcado de hipertextov XML: lenguaje de códigos ampliablev INSO: OmniFind Text Search Server for DB2 for i utiliza filtros para detectar el formato de los

documentos de texto. Están soportados los siguientes formatos de documento INSO:– XML– HTML– JustSystems Ichitaro– Lotus 123– Lotus Freelance– Lotus WordPro– Microsoft Excel– Microsoft PowerPoint– Microsoft Rich Text Format– Microsoft Visio– Microsoft Word– Microsoft Write– Portable Document Format (PDF)– Quattro Pro– Rich Text RTF– StarOffice Calc y OpenOffice Calc

6 IBM i: OmniFind Text Search Server for DB2 for i

Page 13: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Todos los documentos de una columna de texto indexado deben tener el mismo formato (TEXT, HTML,XML o INSO).

Datos XML

La estructura XML de los datos XML se indexa en OmniFind Text Search Server for DB2 for i después deanalizar los datos por medio de un analizador XML. A continuación, puede utilizar la sintaxis de consultade búsquedas XML soportada para recuperar los resultados.Conceptos relacionados:“Búsqueda XML” en la página 53Puede indexar y realizar búsquedas en documentos XML. La gramática de búsqueda XML utiliza unsubconjunto del lenguaje W3 XPath con ampliaciones para búsqueda de texto. Las ampliaciones dansoporte a búsquedas de rango de valores numéricos, de fecha (Date) y fecha y hora (DateTime) asociadoscon un atributo o elemento XML. Los elementos estructurales pueden utilizarse por separado ocombinarse con texto sin formato en las consultas.

Tipos de datos soportadosLos datos de las columnas de texto que desea indexar y en las que realizar búsquedas pueden ser datosbinarios o datos de tipo carácter.

Los tipos de datos siguientes son datos binarios:v BINARYv VARBINARYv BLOB

Además, OMNIFIND maneja los tipos de datos siguientes de forma similar a los datos binarios:v CHAR FOR BIT DATAv VARCHAR FOR BIT DATA

Los tipos de datos siguientes son datos de tipo carácter:v CHAR FOR SBCS DATA o FOR MIXED DATAv VARCHAR FOR SBCS DATA o FOR MIXED DATAv CLOBv DBCLOBv GRAPHICv VARGRAPHICv XML

Si los datos son binarios, puede especificar el CCSID (identificador de juego de caracteres codificados)utilizado para crear el índice de búsqueda de texto. Para datos de tipo carácter, la base de datos DB2conoce la codificación; por tanto, si especifica explícitamente un CCSID, dicha especificación se ignora.

Puntuación de texto y soporte de sinónimosPuede utilizar sinónimos para mejorar los resultados de una consulta. Puede utilizar una puntuación detexto para averiguar el grado de exactitud con el que un resultado coincide con la consulta.

Puntuación de texto

Una puntuación de texto se calcula como parte de la búsqueda y puede incluirse en los resultados de laconsulta. Una puntuación de texto es un valor de 0 a 1, de hasta tres dígitos decimales; por ejemplo,

OmniFind Text Search Server 7

Page 14: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

0,000 a 1,000. Una puntuación de texto indica el grado de exactitud con el que un resultado coincide conla consulta en relación a todos los demás documentos del índice de búsqueda de texto.

OMNIFIND compone la puntuación de texto a partir de diversos factores, tales como la importanciagenérica de los términos de búsqueda y la proximidad de apariciones de los términos de búsqueda. Laimportancia general se basa en la frecuencia de los términos de cada documento y en el desplazamientode la frecuencia de los términos en todos los documentos.

Soporte de sinónimos

OmniFind Text Search Server for DB2 for i admite la utilización de sinónimos para modificar losresultados de una consulta. La utilización de sinónimos puede aumentar el número de resultados deconsulta haciendo que más documentos coincidan con una consulta. Sin embargo, el uso de sinónimostambién puede disminuir la precisión de una consulta y dificultar la búsqueda de un número menor dedocumentos que coincidan con los criterios de búsqueda exactos.

Por omisión, no se utilizan sinónimos para una consulta. Para utilizar sinónimos en una consulta, cree undiccionario de sinónimos y añádalo a una colección mediante la herramienta de sinónimos.

Para obtener más información acerca de los sinónimos, consulte el apartado “Diccionarios de sinónimos”en la página 85.Referencia relacionada:“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Proceso lingüísticoOmniFind Text Search Server for DB2 for i suministra paquetes de diccionarios para dar soporte alproceso lingüístico de documentos y consultas que no están en inglés.

Como alternativa a la segmentación de palabras basada en diccionarios, OmniFind Text Search Server forDB2 for i utiliza soporte de segmentación n-gram para idiomas tales como el chino, el japonés y el coreano.La segmentación n-gram es un método de análisis que considera las secuencias solapadas de un número decaracteres determinado como una sola palabra. Como alternativa, la segmentación de espacio en blancobasada en Unicode utiliza un espacio en blanco para delimitar las palabras.

Si un documento de texto se encuentra en uno de los idiomas soportados, el proceso lingüístico se lleva acabo cuando el texto se analiza para generar señales. Para los idiomas no soportados, se devuelve uncódigo de error.

Al realizar una búsqueda en un índice de búsqueda de texto, se indica una coincidencia que contienevariantes lingüísticas de los términos de consulta. Las variantes de una palabra dependen del idioma dela consulta.

Idiomas soportadosPuede especificar que los documentos de texto se procesen mediante un idioma específico.

Puede especificar el idioma de los datos de texto indexados en el procedimiento almacenado deadministración SYSPROC.SYSTS_CREATE. Si establece el valor en AUTO, OmniFind Text Search Serverfor DB2 for i intentará determinar el idioma. Para documentos breves, la detección automática puede noser exacta y no es recomendable. El idioma predeterminado para el proceso lingüístico es el inglés(en_US).

8 IBM i: OmniFind Text Search Server for DB2 for i

Page 15: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

La tabla siguiente muestra los códigos de idioma de cinco caracteres correspondientes a los idiomassoportados.

Tabla 1. Códigos de idioma de cinco caracteres correspondientes a los idiomas soportados

Código de idioma Idioma

ar_AA Árabe

cs_CZ Checo

da_DK Danés

de_CH Alemán (Suiza)

de_DE Alemán (Alemania)

el_GR Griego

en_AU Inglés (Australia)

en_GB Inglés (Reino Unido)

en_US Inglés (Estados Unidos)

es_ES Español (España)

fi_FI Finés

fr_CA Francés (Canadá)

fr_FR Francés (Francia)

it_IT Italiano

ja_JP Japonés

ko_KR Coreano

nb_NO Noruego Bokmal

nl_NL Holandés

nn_NO Noruego Nynorsk

pl_PL Polaco

pt_BR Portugués de Brasil

pt_PT Portugués (Portugal)

ru_RU Ruso

sv_SE Sueco

zh_CN Chino Simplificado

zh_TW Chino Tradicional

Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

Proceso lingüístico de documentos en chino, japonés y coreanoLos documentos escritos en chino, japonés y coreano pueden procesarse mediante segmentación basadaen diccionario o mediante segmentación n-gram.

Para un motor de búsqueda, la obtención de buenos resultados de búsqueda depende en gran medida delas técnicas utilizadas para procesar el texto. Después de extraer el texto del documento, el primer pasosdel proceso de texto consiste en identificar las palabras individuales del texto. La identificación de laspalabras individuales del texto se denomina segmentación. Para la mayoría de idiomas, puede utilizare el

OmniFind Text Search Server 9

Page 16: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

espacio en blanco (blancos, el final de una línea y determinados caracteres de puntuación) para reconocerlos límites de palabra. Sin embargo, el chino, el japonés y el coreano no utilizan el espacio en blanco entrecaracteres para separar las palabras, por lo que deben utilizarse otras técnicas.

OmniFind Text Search Server for DB2 for i suministra los dos métodos siguientes para dar soporte alproceso lingüístico del chino, el japonés y el coreano:v Segmentación de palabras basada en diccionario (también denominada análisis morfológico)v Segmentación N-gram

Segmentación de palabras basada en diccionario

La segmentación de palabras basada en diccionario utiliza un diccionario específico de idioma para identificarlas palabras en la secuencia de caracteres del documento. Esta técnica proporciona resultados debúsqueda precisos, ya que los diccionarios se utilizan para identificar los límites de palabra. Sin embargo,la segmentación de palabras basada en diccionario puede no detectar resultados de coincidenciaespecíficos.

Segmentación N-gram

La segmentación N-gram evita el problema de identificar los límites de palabra, y en su lugar indexa paresde caracteres solapados. Dado que OmniFind Text Search Server for DB2 for i utiliza dos caracteres, estatécnica también se denomina segmentación bi-gram.

La segmentación n-gram siempre devuelve todos los documentos coincidentes que contienen los términosde búsqueda; sin embargo, esta técnica puede devolver a veces documentos que no coinciden con laconsulta.

Por omisión, OmniFind Text Search Server for DB2 for i se suministra con un índice preconfigurado queutiliza segmentación n-gram para los idiomas chino, japonés y coreano.

Para observar cómo funcionan ambos tipos de proceso lingüístico, examine el texto siguiente de undocumento: elección del gobernador de la prefectura de Kanagawa. En japonés, este texto contieneocho caracteres. En este ejemplo, los ocho caracteres se representan como A B C D E F G H. Una consultade ejemplo que los usuarios podrían especificar podría ser elección del gobernador, que tiene cuatrocaracteres representados como E F G H. (El texto del documento y la consulta de ejemplo compartencaracteres similares).

Si se utiliza el proceso por segmentación n-gram:

Una vez indexado el documento, el motor de búsqueda segmenta el texto elección delgobernador de la prefectura de Kanagawa en los siguientes conjuntos de caracteres: AB BC CDDE EF FG GH

La consulta de ejemplo elección del gobernador se segmenta en los siguientes conjuntos decaracteres: DE EF FG GH. Si realiza una búsqueda con la consulta de ejemplo elección delgobernador, se encontrará el documento. La razón es que las señales tanto para el texto deldocumento como para la consulta aparecen en el mismo orden.

Si habilita la segmentación n-gram, es posible que visualice más resultados, pero posiblementeéstos sean menos precisos. Por ejemplo, en japonés, si realiza una búsqueda con la consulta Kyotoy un documento del índice contiene el texto Ciudad de Tokyo, se encontrará el documento. Larazón es que Ciudad de Tokyo y Kyoto comparten dos de los mismos caracteres del japonés.

Si no se utiliza el proceso por segmentación n-gram:

Una vez indexado el documento, el motor de búsqueda segmenta el texto elección delgobernador de la prefectura de Kanagawa en los siguientes conjuntos de caracteres: ABC DEFGH.

10 IBM i: OmniFind Text Search Server for DB2 for i

Page 17: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

La consulta de ejemplo elección del gobernador se segmenta en los siguientes conjuntos decaracteres: EF GH. Los caracteres EF no aparecen en las señales del texto del documento.(Aunque el documento no contiene EF, sí contiene DEF).

El texto del documento contiene DEF, pero la consulta sólo contiene EF. Por tanto, es menosprobable que el documento se encuentre mediante la consulta de ejemplo.

Si no habilita la segmentación n-gram, probablemente recibirá resultados más precisos, aunqueposiblemente su número sea menor.

Nombre de alias de servidorPuede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.

Cada servidor de búsqueda de texto se identifica de forma exclusiva en la columna SERVERID delcatálogo QSYS2.SYSTEXTSERVERS. La columna SERVERID es un entero generado incrementalmente porla base de datos.

La columna ALIASNAME de QSYS2.SYSTEXTSERVERS se suministra para permitir la asignación de unnombre de alias significativo a cada servidor. Los nombres de alias de servidor pueden utilizarse parahacer referencia a los servidores en los procedimientos SYSTS_START, SYSTS_STOP y SYSTS_CREATE,SYSTS_SHUTDOWN y SYSTS_CLEAR_INDEXES.

Nota: El nombre de alias de servidor puede cambiarse directamente en la tabla de catálogoQSYS2.SYSTEXTSERVERS actualizando el valor ALIASNAME.

Asignar el número de servidor 1 como nombre de alias de "PRIMARY_LOCAL_SERVER".UPDATE QSYS2.SYSTEXTSERVERSSET ALIASNAME = ’PRIMARY_LOCAL_SERVER’WHERE SERVERID = 1

Para eliminar un nombre de alias de un servidor, establezca la columna en NULL.

Eliminar un nombre de alias del número de servidor 1.UPDATE QSYS2.SYSTEXTSERVERSSET ALIASNAME = NULLWHERE SERVERID = 1

Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“SYSPROC.SYSTS_STOP” en la página 17Puede llamar al procedimiento almacenado SYSPROC.SYSTS_STOP para detener las funciones debúsqueda de texto de DB2. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido).“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

OmniFind Text Search Server 11

Page 18: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“SYSPROC.SYSTS_SHUTDOWN” en la página 39Puede llamar al procedimiento almacenado SYSPROC.SYSTS_SHUTDOWN para concluir las funciones debúsqueda de texto de DB2®. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido) y también finaliza los trabajos del servidor debúsqueda de texto del sistema host.“SYSTS_CLEAR_INDEXES” en la página 81Puede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_CLEAR_INDEXES. Otra forma implícita es invocar SYSTS_START directamente, que intenta borraríndices huérfanos automáticamente.

Instalar y configurar funciones de búsqueda de textoPuede instalar y configurar OmniFind Text Search Server for DB2 for i. También puede crear y actualizarun índice de búsqueda de texto para poder empezar a utilizar funciones de búsqueda de texto en unacolumna de una tabla.

Instalar OmniFind Text Search Server for DB2 for iInstale OmniFind Text Search Server for DB2 for i mediante los procedimientos de instalación estándar deun programa bajo licencia de IBM i. Se creará un servidor de texto predeterminado y la tablaQSYS2.SYSTEXTSERVERS se llenará con la información del servidor predeterminado. Opcionalmente,puede añadir servidores de búsqueda de texto adicionales después de la instalación.

Llenar la tabla QSYS2.SYSTEXTSERVERS

OmniFind Text Search Server for DB2 for i es el programa bajo licencia 5733-OMF de IBM. Consulte elapartado Instalar programas bajo licencia adicionales para obtener detalles acerca de la instalación de unprograma bajo licencia. Para buscar este producto, especifique GO LICPGM en la línea de mandatos yseleccione la opción 10 (Visualizar programas bajo licencia instalados). Se visualizará en la lista deprogramas bajo licencia.

La tabla QSYS2.SYSTEXTSERVERS contiene información acerca de los IBM OmniFind Text Search Serversinstalados y disponibles para DB2 for i. Cundo se instala por primera vez el producto OmniFind TextSearch Server for DB2 for i, se crea un servidor de búsqueda de texto predeterminado en el sistema IBMi. La tabla QSYS.SYSTEXTSERVERS también se llena con información del servidor predeterminado.

Crear servidores de búsqueda de texto adicionales

Si está utilizando servidores de búsqueda de texto en un sistema IBM remoto o si está utilizandoservidores no IBM, como por ejemplo un servidor Windows o Linux, llene explícitamente esta tablaemitiendo una sentencia SQL INSERT.

Si desea llenar la tabla QSYS2.SYSTEXTSERVERS con servidores adicionales, siga estos pasos en lasentencia SQL INSERT:1. Especifique el número de puerto y el nombre del servidor para cada servidor de búsqueda de texto en

las columnas SERVERPORT y SERVERNAME de la tabla QSYS2.SYSTEXTSERVERS emitiendo unasentencia SQL INSERT.

2. Especifique la señal de autenticación de cada servidor de búsqueda de texto en la columnaSERVERAUTHTOKEN de la tabla QSYS2.SYSTEXTSERVERS en la sentencia SQL INSERT.Cuando la base de datos DB2 se comunica con un servidor de búsqueda de texto, es necesaria unaseñal de autenticación. Esta señal se genera en el servidor de búsqueda de texto durante lainstalación.

3. Especifique la clave de servidor de cada servidor de búsqueda de texto en la columnaSERVERMASTERKEY de la tabla QSYS2.SYSTEXTSERVERS en la sentencia SQL INSERT.

12 IBM i: OmniFind Text Search Server for DB2 for i

Page 19: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

4. OPCIONAL: especifique un nombre de alias (ALIASNAME) para el servidor en la columnaALIASNAME. Este ALIASNAME puede utilizarse para hacer referencia al servidor en las operacionesposteriores.

Ejemplo

El ejemplo siguiente de sentencia SQL INSERT copia la información necesaria para un servidor debúsqueda de texto en las columnas de la tabla QSYS2.SYSTEXTSERVERS:INSERT INTO QSYS2.SYSTEXTSERVERS(SERVERNAME,

SERVERADRINFO,SERVERPORT,SERVERTYPE,SERVERAUTHTOKEN,SERVERMASTERKEY,SERVERPATH,

ALIASNAME)VALUES(’127.0.0.1’,

VARBINARY(X’0000’),49200,0,’AH2X4w==’,’b1YhcR9O858ArwxLJeIY/Q==’,’/QOpenSys/QIBM/ProdData/TextSearch/server1/bin/’,’LOCALSERVER2’);

Los valores de ejemplo deben sustituirse por los valores reales del servidor.Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

Iniciar funciones de búsqueda de textoAntes de empezar a utilizar las funciones de búsqueda de texto, llame al procedimiento almacenadoSYSPROC.SYSTS_START. Al llamar a este procedimiento, podrá iniciar todos los servidores deproducción que ha definido como locales con respecto al sistema.

El soporte de búsqueda de texto incluye sentencias SQL que utilizan la función CONTAINS, la funciónSCORE y los siguientes procedimientos almacenados de administración:v SYSPROC.SYSTS_CREATEv SYSPROC.SYSTS_UPDATEv SYSPROC.SYSTS_DROPReferencia relacionada:“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice de

OmniFind Text Search Server 13

Page 20: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

búsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“SYSPROC.SYSTS_DROP” en la página 34Puede llamar al procedimiento almacenado SYSPROC.SYSTS_DROP para eliminar un índice de búsquedade texto definido mediante el procedimiento almacenado SYSPROC.SYSTS_CREATE.“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Crear un índice de búsqueda de textoPuede crear un índice de búsqueda de texto llamando al procedimiento almacenadoSYSPROC.SYSTS_CREATE.

La tabla base de DB2 debe contener una columna ROWID, una clave exclusiva o una clave primaria.

Para crear un índice de búsqueda de texto en una tabla de DB2 existente con una columna que contienetexto:

Llame al procedimiento almacenado SYSPROC.SYSTS_CREATE.

El índice de búsqueda de texto estará vacío hasta que el índice se actualice por primera vez.Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

Actualizar un índice de búsqueda de textoPuede actualizar un índice de búsqueda de texto llamando al procedimiento almacenadoSYSPROC.SYSTS_UPDATE.

La llamada a SYSTS_UPDATE se utiliza para llenar inicialmente el índice de búsqueda de texto. Tambiénse utiliza cuando cambia el contenido de las tablas de DB2 y el usuario desea sincronizar el índice debúsqueda de texto con dichos cambios.

Una vez realizada una actualización del índice de búsqueda de texto, puede realizar consultas debúsqueda en el índice de búsqueda de texto. La columna de búsqueda de texto de la tabla base puedecambiarse después de la actualización. En ese caso, los resultados de la consulta de búsqueda noreflejarán dichos cambios hasta la próxima vez que se ejecute una actualización del índice de búsquedade texto.Referencia relacionada:“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.

Buscar en un índice de búsqueda de textoPuede buscar en un índice de búsqueda de texto mediante una sentencia SQL con una funciónCONTAINS o SCORE. En la función se especifican los criterios del argumento de búsqueda.

14 IBM i: OmniFind Text Search Server for DB2 for i

Page 21: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El usuario que realiza las consultas de texto en una tabla de DB2 debe tener establecido el privilegioestándar necesario para cualquier formato de consulta, según lo especificado en DB2 SQL Reference.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Recorte de documentosOmniFind Text Search Server for DB2 for i limita el número de caracteres que pueden indexarse paracada documento de texto. A veces, esta limitación de caracteres provoca el recorte de documentos detexto grandes en el índice de búsqueda de texto.

El servidor de búsqueda de texto puede recortar los documentos que contienen más de 10 millones decaracteres Unicode. En el caso de un documento de texto enriquecido, este límite se aplica después detransformar el documento a texto sin formato.

So un documentos de texto se recorta durante la fase de análisis, el usuario recibe un aviso que indicaque algunos documentos no se han proceso totalmente. El aviso aparece en el registro de trabajo. Eldocumento se indexa parcialmente. El texto que se encuentra en el documento una vez alcanzado ellímite no se indexa y no se tiene en cuenta durante las búsquedas.

Puede que sea conveniente eliminar del índice de búsqueda de texto el documento recortado para evitarun comportamiento inesperado durante el proceso de búsqueda. Puede eliminar el documentoeliminando el registro correspondiente de la tabla de DB2 o cambiado el valor del documento a vacío onulo.

Procedimientos almacenados de administración para búsqueda detextoPuede iniciar y detener funciones de búsqueda de texto y crear, eliminar y actualizar índices de búsquedade texto mediante un conjunto de procedimientos almacenados SQL de administración. Estosprocedimientos pueden invocarse desde cualquier interfaz de SQL. No puede llamar a estosprocedimientos desde una línea de mandatos de IBM i mediante mandatos CL.

Al examinar los catálogos de sistema mediante STRSQL, puede visualizar el contenido de las columnasestableciendo el trabajo con un CCSID distinto de 65535.

SYSPROC.SYSTS_STARTPuede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.

Las funciones de búsqueda de texto incluyen soporte para consultas SQL que utilizan la funciónCONTAINS, la función SCORE y los procedimientos almacenados de administración utilizados para elmantenimiento de los índices de búsqueda de texto.

Ejecute el procedimiento almacenado SYSPROC.SYSTS_START cada vez que se añada o cambie unservidor de la tabla QSYS2.SYSTEXTSERVERS.

OmniFind Text Search Server 15

Page 22: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Si las funciones de búsqueda de texto no se inician, la base de datos devuelve el SQLCODE -20424 con elcódigo de razón 4 para las funciones CONTAINS y SCORE. Los procedimientos administrativosSYSPROC.SYSTS_CREATE y SYSPROC.SYSTS_UPDATE también fallarán con el SQLCODE -20424 si elservidor no se ha iniciado.

Para los servidores de búsqueda de texto que se encuentran en la tabla QSYS2.SYSTEXTSERVERS, seresuelven nombres TCP/IP. Varias llamadas al procedimiento almacenado SYSPROC.SYSTS_START no seconsideran un error. Este proceso permite comprobar la resolución de direcciones de la tablaQSYS2.SYSTEXTSERVERS.

Si el servidor es local, esta llamada al procedimiento almacenado inicia el servidor, si aún no lo ha hecho.Si el servidor es remoto, la llamada al procedimiento comprueba que el servidor está activo, pero no loinicia realmente.

Requisitos previos

Antes de llamar al procedimiento almacenado SYSPROC.SYSTS_START, compruebe que la tablaQSYS2.SYSTEXTSERVERS contiene como mínimo una entrada.

Autorización

El ID de usuario bajo el que se invoca este procedimiento almacenado debe tener los siguientesprivilegios:v Autorización *EXECUTE sobre el procedimiento.v Privilegios SELECT y UPDATE sobre la tabla SYSTXTSRVR.v Autorización *EXECUTE sobre la biblioteca QSYS2 del archivo SYSTXTSRVR.v Autorización *JOBCTL o utilización de la función especial de seguridad QIBM_DB_SQLADM.

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSPROC.SYSTS_START ( )idservidornombrealias

��

El calificador de esquema es SYSPROC.

Parámetro

idservidor o nombrealiasEspecifica el identificador del servidor que debe iniciarse. Un idservidor o un nombrealias de servidores una serie de caracteres. Si no se especifica ningún identificador, el valor predeterminado es iniciartodos los servidores. La serie del identificador debe ser un idservidor válido existente en la columnaSERVERID o un nombrealias de servidor válido existente en la columna ALIASNAME de la tablaQSYS2.SYSTEXTSERVERS. Si el identificador puede convertirse a un valor entero, se interpreta comoidservidor. Si el identificador no puede convertirse a un valor entero, se interpreta como nombrealias deservidor.

El tipo de datos de este parámetro es VARCHAR(128).

Nota: Si no se especifica ningún valor para idservidor o nombrealias, sólo se inician los servidoresidentificados como servidores de producción. Los servidores de producción se identifican mediante el

16 IBM i: OmniFind Text Search Server for DB2 for i

Page 23: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

parámetro SERVERCLASS = 0 en la tabla QSYS2.SYSTEXTSERVERS. Los servidores de prueba debeniniciarse especificando el idservidor o nombrealias asociado con ellos.

Para iniciar todos los servidores de producción:CALL SYSPROC.SYSTS_START().

Parainiciar un servidor con el ID 1:CALL SYSPROC.SYSTS_START(1)

Parainiciar un servidor con el nombre de alias "LOCAL_SERVER":CALL SYSPROC.SYSTS_START('LOCAL_SERVER')

Para iniciar un servidor con el nombre de alias "local_server":CALL SYSPROC.SYSTS_START('"local_server"')

Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.Tareas relacionadas:“Iniciar OmniFind Text Search Server for DB2 for i” en la página 70Puede iniciar OmniFind Text Search Server for DB2 for i llamando al procedimientoSYSPROC.SYSTS_START.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

SYSPROC.SYSTS_STOPPuede llamar al procedimiento almacenado SYSPROC.SYSTS_STOP para detener las funciones debúsqueda de texto de DB2. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido).

Una vez completado este procedimiento almacenado, las consultas SQL que utilicen las funcionesCONTAINS o SCORE o los procedimientos almacenados de administración utilizados para elmantenimiento de los índices devolverán una anomalía sin intentar contactar con un servidor debúsqueda de texto.

Nota: Los procedimientos administrativos y las consultas SQL que utilizan las funciones incorporadasCONTAINS o SCORE que se estuvieran ejecutando al invocar SYSTS_STOP podrán finalizar.

Los cambios en la tabla base del índice se siguen registrando aunque el servidor esté detenido. Sinembargo, las actualizaciones planificadas del índice no se producirán hasta que se haya invocado aSYSPROC.SYSTS_START.

OmniFind Text Search Server 17

Page 24: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Autorización

El ID de usuario bajo el que se invoca este procedimiento almacenado debe tener los siguientesprivilegios:v Autorización *EXECUTE sobre el procedimiento.v Privilegios SELECT y UPDATE sobre la tabla SYSTEXTSERVERS.v Autorización *EXECUTE sobre la biblioteca QSYS2 del archivo SYSTEXTSERVERS.v Autorización *JOBCTL o utilización de la función especial de seguridad QIBM_DB_SQLADM.

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSTS_STOP ( )idservidornombrealias

��

El calificador de esquema es SYSPROC.

Parámetro

idservidor o nombrealiasEspecifica el identificador del servidor que debe detenerse. Un idservidor o un nombrealias de servidores una serie de caracteres. Si no se especifica ningún identificador, el valor predeterminado es detenertodos los servidores. La serie del identificador debe ser un idservidor válido existente en la columnaSERVERID o un nombrealias de servidor válido existente en la columna ALIASNAME de la tablaQSYS2.SYSTEXTSERVERS. Si el identificador puede convertirse a un valor entero, se interpreta comoidservidor. Si el identificador no puede convertirse a un valor entero, se interpreta como nombrealias deservidor.

El tipo de datos de este parámetro es VARCHAR(128).

Para detener todos los servidores de producción:CALL SYSPROC.SYSTS_STOP().

Paradetener un servidor con el ID 1:CALL SYSPROC.SYSTS_STOP(1)

Paradetener un servidor con el nombre de alias "LOCAL_SERVER":CALL SYSPROC.SYSTS_STOP('LOCAL_SERVER')

Para detener un servidor con el nombre de alias "local_server":CALL SYSPROC.SYSTS_STOP('"local_server"')

Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

18 IBM i: OmniFind Text Search Server for DB2 for i

Page 25: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

SYSPROC.SYSTS_CREATEPuede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

El índice de búsqueda de texto se crea en uno de los servidores de búsqueda de texto listados en la tablaQSYS2.SYSTEXTSERVERS. El índice de búsqueda de texto no se actualiza síncronamente cuando seactualiza la tabla de DB2. En lugar de ello, existen desencadenantes que capturan un registro de loscambios realizados en la columna de la tabla de DB2, que se coloca en una tabla intermedia.

Nota: este procedimiento almacenado sólo define el índice de búsqueda de texto. El índice de búsquedade texto no contiene datos hasta que se ha realizado la primera invocación del procedimiento almacenadoSYSPROC.SYSTS_UPDATE para el nuevo índice de búsqueda de texto. El índice de búsqueda de texto secrea después de llenar inicialmente la tabla. Mediante la creación del índice de búsqueda de texto unavez llenada inicialmente la tabla, se evita la activación de desencadenantes de cambios antes de unaactualización de índice inicial.

Requisitos previos

Antes de la llamada al procedimiento almacenado SYSPROC.SYSTS_CREATE, compruebe los siguientesrequisitos previos:v Que se han iniciado las funciones de búsqueda de texto de DB2, invocando el procedimiento

almacenado SYSPROC.SYSTS_START, y que existe como mínimo un servidor de búsqueda de texto enejecución.

v Que la tabla incluye una columna definida como clave primaria, índice exclusivo o ROWID.v Que la tabla QSYS2.SYSTEXTSERVERS contiene como mínimo una entrada.

Autorización

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v El privilegio de creación en el esquema. Para obtener más información, consulte el apartado

Autorización, privilegios y propiedad de objetos.v Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v Las siguientes autorizaciones del sistema:

– *USE sobre el mandato Crear archivo lógico (CRTLF)

OmniFind Text Search Server 19

Page 26: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

– *CHANGE sobre el diccionario de datos si la biblioteca en la que se crea el índice de texto es unesquema SQL con un diccionario de datos

v Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia también deben incluir como mínimouno de los siguientes:v Para la tabla referenciada:

– El privilegio INDEX sobre la tabla– La autorización del sistema *EXECUTE sobre la biblioteca que contiene la tabla

v Autoridad administrativav Si se especifican nombres SQL y existe un perfil de usuario que tiene el mismo nombre que la

biblioteca en la que se crea el índice de texto, y dicho nombre es diferente del ID de autorización de lasentencia, los privilegios detentados por el ID de autorización de la sentencia deben incluir comomínimo uno de los privilegios siguientes:– Autorización del sistema *ADD sobre el perfil de usuario con ese nombre– Autoridad administrativa

Si se hace referencia a un tipo distinct, los privilegios detentados por el ID de autorización de la sentenciadeben incluir como mínimo uno de los siguientes:v Para cada tipo distinct identificado en la sentencia:

– El privilegio USAGE sobre el tipo distinct, y– La autorización del sistema *EXECUTE sobre la biblioteca que contiene el tipo distinct

v Autoridad administrativa

Si la columna sobre la que se ha creado el índice de búsqueda de texto contiene un procedimiento decampo, el ID de autorización debe tenerv Autorización *EXECUTE sobre el programa yv Autorización *EXECUTE sobre la biblioteca que contiene el programa

O bienv Autoridad administrativa

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSTS_CREATE ( esquemaÍndicenulo

, nombreÍndice , origenTexto , opciones ) ��

El calificador de esquema es SYSPROC.

Parámetros

esquemaÍndiceIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante. Este valor debe ser unnombre SQL válido.

Nota: especifique los nombres entre comillas dobles si los nombres entran en conflicto con palabrasclave SQL o palabras clave de OmniFind que puedan utilizarse.

20 IBM i: OmniFind Text Search Server for DB2 for i

Page 27: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El tipo de datos de este parámetro es VARCHAR(128).

nombreÍndiceIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifican de forma exclusiva el índice de texto en el subsistemaDB2. Debe especificar un valor no nulo en este parámetro. Este valor debe ser un nombre SQL válido.

Nota: especifique los nombres entre comillas dobles si los nombres entran en conflicto con palabrasclave SQL o palabras clave de OmniFind que puedan utilizarse.

El tipo de datos de este parámetro es VARCHAR(128).

origenTextoIdentifica la especificación de tabla y columna para el origen de texto del documento. Este parámetropuede incluir funciones definidas por el usuario. Debe especificar un valor no nulo en esteparámetro.

El tipo de datos de este parámetro es VARCHAR(1024).

origenTexto:

esquemaTabla. nombreTabla ( nombre-columna-texto )nombre-función ( nombre-columna-texto )

esquema-función .

esquemaTablaIdentifica el esquema de la tabla en que se crea el índice de búsqueda de texto.

Nota: especifique los nombres entre comillas dobles si los nombres entran en conflicto conpalabras clave SQL o palabras clave de OmniFind que puedan utilizarse.

nombreTablaIdentifica el nombre de la tabla de texto que contiene la columna sobre la que se crea elíndice de búsqueda de texto externo.

Notas:

v Las vistas y archivos lógicos no están soportados.v Un alias debe señalar hacia una tabla o hacia un único miembro de un archivo físico.v Especifique los nombres entre comillas dobles si los nombres entran en conflicto con

palabras clave SQL o palabras clave de OmniFind.

nombre-columna-textoIdentifica el nombre de la columna que contiene el texto utilizado para crear el índice debúsqueda de texto. Esta columna debe ser de tipo CHAR, CHAR FOR BIT DATA, BINARY,VARCHAR, VARCHAR FOR BIT DATA, VARBINARY, CLOB, DBCLOB, BLOB, XML,GRAPHIC o VARGRAPHIC. Si el tipo de datos no pertenece a uno de los anteriores, puedeespecificar una función externa que devuelva un tipo de datos soportado.

Notas:

v Sólo se permite un índice de búsqueda de texto para una columna. Si existe un índice debúsqueda de texto para la columna, se devuelve el SQLCODE-20427.

v Especifique los nombres entre comillas dobles si los nombres entran en conflicto conpalabras clave SQL o palabras clave de OmniFind.

esquema-función. nombre-funciónIdentifica el esquema y el nombre de una función incorporada o definida por usuario. Lafunción puede utilizarse para modificar un documento de texto almacenado en la columna.La función también puede utilizarse para acceder a documentos de texto que se encuentran

OmniFind Text Search Server 21

Page 28: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

en una columna que no es de un tipo de datos soportado. O bien puede utilizarse paraacceder a un documento almacenado en otro lugar. La función tiene un parámetro de entradapara el tipo de datos de columna de texto. Por ejemplo, un entero que actúa como claveforánea del contenido del documento de otro tabla. La función devuelve un valor de uno delos tipos de datos soportados por OmniFind Text Search for DB2 for i. La función transformael contenido de la columna de texto en el contenido del documento indexado.

Notas:

v Las funciones de conversión de tipo de datos y las funciones con más de un argumento noestán permitidas.

v especifique los nombres entre comillas dobles si los nombres entran en conflicto conpalabras clave SQL o palabras clave de OmniFind que puedan utilizarse.

opcionesSerie de caracteres que especifica las diversas opciones que están disponibles para este procedimientoalmacenado.

El tipo de datos de este parámetro es VARCHAR(32000).

opciones:

información-predeterminada-texto características-actualización opciones-configuración-índice

información-predeterminada-texto:

CCSID ccsid LANGUAGE idioma FORMAT formato

información-predeterminada-textoEspecifica el identificador de juego de caracteres codificados utilizado al indexar documentos detexto binarios. También especifica el idioma utilizado al procesar documentos y el formato de losdocumentos de texto de la columna.

CCSID ccsidEspecifica el identificador de juego de caracteres codificados utilizado para un índice debúsqueda de texto en una columna con un tipo de datos binarios. El valor predeterminado es1208 (UTF-8), que se toma de la tabla QSYS2.SYSTEXTDEFAULTS. En este parámetro sepermiten todos los CCSID soportados para la conversión a UTF-8 por los servicios deconversión de IBM i.

Este parámetro se ignora para un índice de búsqueda de texto en una columna con un tipode datos no binarios. Las columnas de texto heredan el CCSID de la especificación de tabla.El valor de ccsid se ignora cuando el valor de formato se establece en INSO.

LANGUAGE idiomaEspecifica el idioma que OmniFind Text Search Server for DB2 for i utiliza para el procesolingüístico de los documentos de texto. El valor predeterminado es en_US (inglés). Siespecifica AUTO como valor de este parámetro, OmniFind Text Search Server for DB2 for iintentará determinar el idioma.

Importante: Si el idioma de los documentos no es el inglés, no utilice el valorpredeterminado en_US. Cambie el valor al idioma de los documentos; de lo contrario, elproceso lingüístico no funcionará según lo esperado.

FORMAT formatoidentifica el formato de los documentos de texto de la columna, como por ejemplo HTML.OmniFind Text Search Server for DB2 for i necesita conocer el formato, o tipo de contenido,

22 IBM i: OmniFind Text Search Server for DB2 for i

Page 29: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

de los documentos de texto que tiene previsto indexar y en los que va a realizar búsquedas.Si no especifica el parámetro formato, el valor predeterminado se toma de la columnaFORMAT de la tabla QSYS2.SYSTEXTDEFAULTS. Los valores de formato soportados sonTEXT, HTML, XML e INSO.

El valor de formato INSO permite a OmniFind Text Search Server for DB2 for i determinar elformato. En este caso, el valor de ccsid se ignora. Si OmniFind Text Search Server for DB2 fori no puede determinar el formato del documento, el procedimiento almacenadoSYSPROC.SYSTS_UPDATE anota un error de documento en el registro de trabajo durante elproceso.

Nota: Si no especifica el parámetro formato al crear el índice sobre una columna de tipo dedatos XML, el valor predeterminado es XML. Si especifica el parámetro formato como TEXT oINSO, la prestación de búsqueda XML no estará disponible para este índice. Además,aparecerá un mensaje de aviso en el registro de trabajo.

características-actualización:

NONEUPDATE FREQUENCY < frecuencia-actualización>

UPDATE MINIMUM mín_cambios

características-actualizaciónEspecifica la frecuencia de las actualizaciones automáticas en el índice de búsqueda de texto.También especifica el número mínimo de cambios que deben realizarse en los documentos detexto antes de que el índice de búsqueda de texto se actualice incrementalmente a la horaespecificada.

UPDATE FREQUENCY frecuencia-actualizaciónEspecifica cuándo realizar actualizaciones automáticas en el índice de búsqueda de texto. Elvalor predeterminado es NONE. Esta opción puede ser de utilidad para una columna detexto en la que no haya más cambios. El formato de la opción frecuencia-actualización admitedos formatos.

frecuencia-actualización (Formato 1):

� � �

NONED ( * ) H ( * ) M ( * )

, , ,

0..6 0..23 0..590..6 0..23 0..59

NONESi se especifica NONE, no se realizan más actualizaciones de índice. La actualizacióndebe iniciarse manualmente. Esta opción puede ser de utilidad para una columna detexto en la que no haya más cambios planificados.

D Especifica el día o días de la semana en los que se actualiza el índice. Un asterisco (*)indica todos los días. 0 indica el Domingo.

H Especifica la hora u horas en las que se actualiza el índice. Un asterisco (*) indicatodas las horas.

M Especifica el minuto o minutos en los que se actualiza el índice. No puedeespecificarse un asterisco (*). La frecuencia de actualización mínima es de 5 minutos.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada 30minutos.UPDATE FREQUENCY D(*) H(*) M(0,30)

OmniFind Text Search Server 23

Page 30: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

frecuencia-actualización (Formato 2, cronológico):

< minuto> < hora> <díaDelMes> <mesDelAño> <díaDeLaSemana>

El formato de la opción frecuencia-actualización (cronológica) es una lista de cinco valoresseparados por espacios en blanco. Los cinco valores representan los minutos, horas, días delmes, meses del año y días de la semana empezando por el Domingo.

Si especifica un intervalo de valores o un asterisco (*), puede especificar un valor de recorridoutilizando una barra inclinada (/) al final del intervalo definido.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada cuarto dehora (0,15,30,45) en las horas pares entre las 8 a.m. y las 6:45 p.m. (8-18/2 es equivalente a8,10,12,14,16,18), de Lunes a Viernes todos los meses del año (* * 1-5).0,15,30,45 8-18/2 * * 1-5

minuto Especifica los minutos de la hora en los que debe actualizarse el índice de búsquedade texto. Puede especificar un asterisco (*) para un intervalo de cada 5 minutos o unentero de 0 a 59. No pueden repetirse valores. La frecuencia de actualización mínimaes de 5 minutos. Un valor de 1, 4 u 8 no es válido.

frecuencia-actualización (minuto):

*/ 0...59

,

0...59 - 0...59/ 0...59

0...59

hora Especifica las horas del día en las que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada hora o un entero de 0 a 23. Nopueden repetirse valores.

frecuencia-actualización (hora):

*/ 0...23

,

0...23 - 0...23/ 0...23

0...23

díaDelMesEspecifica los días del mes en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada día o un entero de 1 a 31. Nopueden repetirse valores.

frecuencia-actualización (díaDelMes):

*/ 1...31

,

1...31 - 1...31/ 1...31

1...31

24 IBM i: OmniFind Text Search Server for DB2 for i

Page 31: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

mesDelAñoEspecifica los meses del año en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada mes o un entero de 1 a 12. Nopueden repetirse valores.

frecuencia-actualización (mesDelAño):

*/ 1...12

,

1...12 - 1...12/ 1...12

1...12

díaDeLaSemanaEspecifica los días de la semana en los que debe actualizarse el índice de búsquedade texto. Puede especificar un asterisco (*) para cada día o un entero de 0 a 7. Tanto 0como 7 son valores válidos para el Domingo. No pueden repetirse valores.

frecuencia-actualización (díaDeLaSemana):

*/ 0...7

,

0...7 - 0...7/ 0...7

0...7

UPDATE MINIMUM mín_cambiosEspecifica el número mínimo de cambios de registro realizados en la tabla subyacente antesde que el índice de búsqueda de texto se actualice incrementalmente a la hora especificada enla opción frecuencia-actualización. El valor debe ser un entero de 1 a 2147483647. El valorpredeterminado se toma de la columna UPDATEMINIMUM de la tablaQSYS2.SYSTEXTDEFAULTS.

Esta opción se ignora al actualizar el índice de búsqueda de texto, a menos que especifique laopción USING UPDATE MINIMUM en el procedimiento almacenadoSYSPROC.SYSTS_UPDATE.

opciones-configuración-índice:

INDEX CONFIGURATION ( �

,

opción valor )

ROW_COLUMN_ACCESS:

NOT SECURED SECURED

opciones-configuración-índiceEspecifica valores adicionales específicos de índice en forma de pares de opción y valor. Debeespecificar los valores tipo serie entre comillas simples. Un comilla simple dentro de un valor tiposerie debe representarse mediante dos comillas simples consecutivas.

OmniFind Text Search Server 25

Page 32: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

CJKSEGMENTATIONEspecifica el método de segmentación que debe utilizarse al indexar documentos paraidiomas CJK (chino, japonés, coreano). Los valores soportados son MORPHOLOGICAL yNGRAM. Si no se especifica el valor CJKSEGMENTATION, se utiliza el valorpredeterminado. El valor predeterminado se especifica en la columna DEFAULTNAME de latabla QSYS2.SYSTEXTDEFAULTS.

COMMENTEspecifica un comentario que se almacena en la columna REMARKS de la tabla deadministración QSYS2.SYSTEXTINDEXES y como descripción de la colección de OmniFindText Search Server for DB2 for i.

El valor de esta opción es un valor tipo serie inferior o igual a 512 bytes.

IGNOREEMPTYDOCSEspecifica si deben representarse los documentos vacíos en el índice de búsqueda de texto.Los documentos vacíos son aquellos con una serie vacía o un valor nulo.

Los valores soportados para esta opción son 0 (cero) y 1. El valor predeterminado es 1.

Si esta opción se establece en 1, los documentos vacíos no estarán representados en el índicede búsqueda de texto. Si utiliza esta opción y cambia el contenido del documento a vacío, lapróxima actualización incremental suprimirá los documentos del índice de búsqueda de texto.

KEYCOLUMNEspecifica el nombre de una columna exclusiva que debe utilizarse como columna de clave enel índice de texto. La columna de clave se utiliza para asociar datos del índice de texto a undocumento o fila de la tabla base. La columna especificada debe tener una restricción declave primaria o índice exclusivo. Si no se especifica KEYCOLUMN, se utiliza la columnaROWID de la tabla, si existe. De lo contrario, se utiliza la clave primaria definida en la tabla.

SERVEREspecifica el ID o nombre de alias del servidor que debe utilizarse para almacenar el índicede búsqueda de texto. Si se utiliza un ID, el valor es un entero que debe existir en la columnaSERVERID del catálogo QSYS2.SYSTEXTSERVERS. Si se utiliza un nombre de alias, el valores una serie que debe existir en la columna ALIASNAME del catálogoQSYS2.SYSTEXTSERVERS. Si no se especifica SERVER, el valor predeterminado es seleccionarel servidor con menos índices de búsqueda de texto entre los servidores de la tablaQSYS2.SYSTEXTSERVERS en los que el parámetro SERVERSTATUS está establecido en 0(cero), lo que indica que el servidor está disponible.

UPDATEAUTOCOMMITEspecifica la frecuencia con la que se realiza una operación de confirmación al extraerdocumentos durante una actualización de índice. El valor 0 (cero) indica que una operaciónde confirmación sólo se realiza al final del proceso.

El valor debe ser un entero entre 0 (cero) y 2147483647. El valor predeterminado es 100.

Sugerencia de rendimiento: el valor de UPDATEAUTOCOMMIT puede tener un impactosignificativo sobre el rendimiento de las actualizaciones de índice. La operación deconfirmación que tiene lugar con el intervalo especificado garantiza un punto decomprobación coherente desde el que reiniciar la actualización de índice, si se interrumpe. Sinembargo, la confirmación también suspende temporalmente el proceso de actualización.Aumentar el valor de UPDATEAUTOCOMMIT (o establecerlo en 0) puede mejorarsignificativamente el rendimiento de la actualización, especialmente de la inicial. El valor queespecifique debe buscar el equilibrio entre las necesidades de rendimiento y las derecuperabilidad, en función de la frecuencia de las actualizaciones del índice.

ROW_COLUMN_ACCESSEspecifica si el índice de búsqueda de texto se considera seguro para el control de acceso afilas y el control de acceso a columnas.

26 IBM i: OmniFind Text Search Server for DB2 for i

Page 33: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

NOT_SECUREDEspecifica que el índice de búsqueda de texto no se considera seguro para el control deacceso a filas y el control de acceso a columnas. Este es el valor predeterminado.

La tabla base para el índice no debe tener un permiso o máscara activa.

SECUREDEspecifica que el índice se considera seguro para el control de acceso a filas y el controlde acceso a columnas.

Un índice de búsqueda de texto debe estar definido como seguro para poder crearsesobre una tabla con una máscara de columna o permiso activo. Si una función estáreferenciada para acceder o modificar datos de una columna enmascarados, la funcióndebe definirse como segura. El ID de autorización debe tener la autorizaciónDB_SECADMIN para crear un índice de búsqueda de texto con el atributo SECURED.

Cuando un índice de búsqueda de texto se crea sobre información confidencial, existenconsideraciones adicionales:

El administrador de bases de datos debe ser consciente de que los datos especificadoscomo columnas de clave para el índice de búsqueda de texto se almacenarán en una tablaintermedia de QSYS2 y se enviarán al servidor de búsqueda de texto utilizandoprotocolos de red.

El administrador de bases de datos debe ser consciente de que los datos indexados porun índice de búsqueda de texto se envían al servidor de búsqueda de texto utilizandoprotocolos de red y se almacenan fuera de DB2 en el servidor de búsqueda de texto.

Valores predeterminados del parámetro opciones

Al instalar OmniFind Text Search for DB2 for i, se crea la tabla QSYS2.SYSTEXTDEFAULTS y se llena convalores predeterminados para el parámetro opciones del procedimiento almacenadoSYSPROC.SYSTS_CREATE.

En la tabla siguiente se indican las opciones, los valores predeterminados y las descripciones de lasopciones.

Tabla 2. Valores predeterminados del parámetro opciones

OpciónValorpredeterminado Descripción

CCSID 1208 Especifica el identificador de juego de caracterescodificados utilizado al indexar documentos de textobinarios.

CJKSEGMENTATION NGRAM Especifica el método de segmentación que debeutilizarse al indexar documentos para idiomas CJK(chino, japonés, coreano).

LANGUAGE en_US Especifica el idioma utilizado para procesardocumentos de texto.

FORMAT TEXT Identifica el formato de los documentos de texto de lacolumna. El formato predeterminado es texto sinformato, a menos que el tipo de datos sea XML.

UPDATEFREQUENCY NONE Indica que no hay actualizaciones automáticasplanificadas.

UPDATEMINIMUM 1 Si un documento como mínimo ha cambiado desde laúltima actualización del índice, el procedimientoalmacenado SYSPROC.SYSTS_UPDATE inicia elproceso.

OmniFind Text Search Server 27

Page 34: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 2. Valores predeterminados del parámetro opciones (continuación)

OpciónValorpredeterminado Descripción

IGNOREEMPTYDOCS 1 Especifica que los documentos vacíos (aquellos con unaserie vacía o un valor nulo) no están representados enel índice de búsqueda de texto. Los campos demetadatos para estos documentos no están disponiblespara la búsqueda.

UPDATEAUTOCOMMIT 100 Especifica la frecuencia con la que se realiza unaoperación de confirmación al extraer documentosdurante una actualización de índice.

MINIMUMUPDATEINTERVAL 5 Especifica los intervalos de la opciónUPDATEFREQUENCY. Los intervalos no pueden serinferiores a 5 minutos.

ROW_COLUMN_ACCESS NOT_SECURED Especifica si el índice se crea como protegido.

USEREXITTHREADS 0 Reservada

Conceptos relacionados:“Formatos de documento soportados” en la página 6Los datos de una columna de texto pueden ser texto sin formato, un documento HTML, un XML ocualquier documento que el motor de búsqueda reconozca.“Tipos de datos soportados” en la página 7Los datos de las columnas de texto que desea indexar y en las que realizar búsquedas pueden ser datosbinarios o datos de tipo carácter.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.“Tabla de administración QSYS2.SYSTEXTDEFAULTS” en la página 111Puede visualizar los parámetros y valores predeterminados en la tabla de administraciónQSYS2.SYSTEXTDEFAULTS. Esta tabla se crea al instalar OmniFind Text Search for DB2 for i.“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“Idiomas soportados” en la página 8Puede especificar que los documentos de texto se procesen mediante un idioma específico.

SYSPROC.SYSTS_ALTERPuede llamar al procedimiento almacenado SYSPROC.SYSTS_ALTER para modificar los atributos de uníndice creado por SYSPROC.SYSTS_CREATE. Sólo se cambiarán los atributos especificados explícitamenteen este procedimiento. Todos los demás atributos del índice permanecerán sin cambios.

Este procedimiento resulta de utilidad si necesita cambiar los atributos del índice, como por ejemplo lafrecuencia de actualización, una vez que éste se ha creado.

28 IBM i: OmniFind Text Search Server for DB2 for i

Page 35: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Requisitos previos

Antes de llamar al procedimiento almacenado SYSPROC.SYSTS_ALTER, compruebe el siguiente requisitoprevio:v El índice de búsqueda de texto debe haberse creado (por invocación del procedimiento almacenado

SYSPROC.SYSTS_CREATE).

Autorización

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v El privilegio de creación en el esquema. Para obtener más información, consulte el apartado

Autorización, privilegios y propiedad de objetos.v Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v Las siguientes autorizaciones del sistema:

– *USE sobre el mandato Crear archivo lógico (CRTLF)– *CHANGE sobre el diccionario de datos si la biblioteca en la que se crea el índice de texto es un

esquema SQL con un diccionario de datosv Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia también deben incluir como mínimouno de los siguientes:v Para la tabla referenciada:

– El privilegio INDEX sobre la tabla– La autorización del sistema *EXECUTE sobre la biblioteca que contiene la tabla

v Autoridad administrativav Si se especifican nombres SQL y existe un perfil de usuario que tiene el mismo nombre que la

biblioteca en la que se crea el índice de texto, y dicho nombre es diferente del ID de autorización de lasentencia, los privilegios detentados por el ID de autorización de la sentencia deben incluir comomínimo una de las autorizaciones siguientes:– Autorización del sistema *ADD sobre el perfil de usuario con ese nombre– Autoridad administrativa

Si se hace referencia a un tipo distinct, los privilegios detentados por el ID de autorización de la sentenciadeben incluir como mínimo uno de los siguientes:v Para cada tipo distinct identificado en la sentencia:

– El privilegio USAGE sobre el tipo distinct, y– La autorización del sistema *EXECUTE sobre la biblioteca que contiene el tipo distinct

v Autoridad administrativa

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSTS_ALTER ( esquemaÍndice , nombreÍndice , opciones ) ��

OmniFind Text Search Server 29

Page 36: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El calificador de esquema es SYSPROC.

Parámetros

esquemaÍndiceIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante.

El tipo de datos de este parámetro es VARCHAR(128).

nombreÍndiceIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifica de forma exclusiva el índice de texto en el subsistema DB2.Debe especificar un valor no nulo en este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).

opcionesSerie de caracteres que especifica las diversas opciones que están disponibles para este procedimientoalmacenado.

El tipo de datos de este parámetro es VARCHAR(32000).

El valor del parámetro no puede ser NULL.

Opciones:

información-redenominar-función características-actualización opciones-configuración-índice

información-redenominar-función:

RENAME FUNCTION nombre-funciónesquema-función .

Especifica la función definida por el usuario que debe redenominarse.

esquema-función.nombre-funciónEspecifica el esquema y el nombre de una función definida por el usuario.

Esta opción se utiliza para cambiar una función que se ha especificado al crear un índice. Si semodifica la función, SYSTS_UPDATE utilizará la función nueva para indexar la columna de texto.

Si la función se ha cambiado, SYSTS_UPDATE no cambiará los datos existentes del índice. Sólo seprocesarán los datos nuevos cambiados después de la última actualización.

características-actualización:

NONEUPDATE FREQUENCY frecuencia-actualización

UPDATE MINIMUM mín_cambios

características-actualizaciónEspecifica la frecuencia de las actualizaciones automáticas en el índice de búsqueda de texto.También especifica el número mínimo de cambios que deben realizarse en los documentos detexto antes de que el índice de búsqueda de texto se actualice incrementalmente a la horaespecificada.

UPDATE FREQUENCY frecuencia-actualizaciónEspecifica la frecuencia de las actualizaciones automáticas en el índice de búsqueda de texto.

30 IBM i: OmniFind Text Search Server for DB2 for i

Page 37: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El valor predeterminado es NONE. Esta opción puede ser de utilidad para una columna detexto en la que no haya más cambios. El formato de la opción frecuencia-actualización admitedos formatos.

frecuencia-actualización (Formato 1):

� � �

NONED ( * ) H ( * ) M ( * )

, , ,

0..6 0..23 0..590..6 0..23 0..59

NONESi se especifica NONE, no se realizan más actualizaciones de índice. La actualizacióndebe iniciarse manualmente. Esta opción puede ser de utilidad para una columna detexto en la que no haya más cambios planificados.

D Especifica el día o días de la semana en los que se actualiza el índice. Un asterisco (*)indica todos los días. 0 indica el Domingo.

H Especifica la hora u horas en las que se actualiza el índice. Un asterisco (*) indicatodas las horas.

M Especifica el minuto o minutos en los que se actualiza el índice. No puedeespecificarse un asterisco (*). La frecuencia de actualización mínima es de 5 minutos.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada 30minutos.UPDATE FREQUENCY D(*) H(*) M(0,30)

frecuencia-actualización (Formato 2, cronológico):

< minuto> < hora> <díaDelMes> <mesDelAño> <díaDeLaSemana>

El formato de la opción frecuencia-actualización (cronológica) es una lista de cinco valoresseparados por espacios en blanco. Los cinco valores representan los minutos, horas, días delmes, meses del año y días de la semana empezando por el Domingo.

Si especifica un intervalo de valores o un asterisco (*), puede especificar un valor de recorridoutilizando una barra inclinada (/) al final del intervalo definido.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada cuarto dehora (0,15,30,45) en las horas pares entre las 8 a.m. y las 6:45 p.m. (8-18/2 es equivalente a8,10,12,14,16,18), de Lunes a Viernes todos los meses del año (* * 1-5).0,15,30,45 8-18/2 * * 1-5

minuto Especifica los minutos de la hora en los que debe actualizarse el índice de búsquedade texto. Puede especificar un asterisco (*) para un intervalo de cada 5 minutos o unentero de 0 a 59. No pueden repetirse valores. La frecuencia de actualización mínimaes de 5 minutos. Un valor de 1, 4 u 8 no está permitido.

OmniFind Text Search Server 31

Page 38: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

frecuencia-actualización (minuto):

*/ 0...59

,

0...59 - 0...59/ 0...59

0...59

hora Especifica las horas del día en las que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada hora o un entero de 0 a 23. Nopueden repetirse valores.

frecuencia-actualización (hora):

*/ 0...23

,

0...23 - 0...23/ 0...23

0...23

díaDelMesEspecifica los días del mes en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada día o un entero de 1 a 31. Nopueden repetirse valores.

frecuencia-actualización (díaDelMes):

*/ 1...31

,

1...31 - 1...31/ 1...31

1...31

mesDelAñoEspecifica los meses del año en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada mes o un entero de 1 a 12. Nopueden repetirse valores.

frecuencia-actualización (mesDelAño):

*/ 1...12

,

1...12 - 1...12/ 1...12

1...12

díaDeLaSemanaEspecifica los días de la semana en los que debe actualizarse el índice de búsquedade texto. Puede especificar un asterisco (*) para cada día o un entero de 0 a 7. Tanto 0como 7 son valores válidos para el Domingo. No pueden repetirse valores.

32 IBM i: OmniFind Text Search Server for DB2 for i

Page 39: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

frecuencia-actualización (díaDeLaSemana):

*/ 0...7

,

0...7 - 0...7/ 0...7

0...7

UPDATE MINIMUM mín_cambiosEspecifica el número mínimo de cambios de registro realizados en la tabla subyacente antesde que el índice de búsqueda de texto se actualice incrementalmente a la hora especificada enla opción frecuencia-actualización. El valor debe ser un entero de 1 a 2147483647.

opciones-configuración-índice:

INDEX CONFIGURATION ( �

,

opción valor )

ROW_COLUMN_ACCESS:

NOT SECURED SECURED

COMMENTEspecifica un comentario que se almacena en la columna REMARKS de la tabla deadministración QSYS2.SYSTEXTINDEXES y como descripción de la colección de OmniFind TextSearch Server for DB2 for i.

El valor de esta opción es un valor tipo serie inferior o igual a 512 bytes.

UPDATEAUTOCOMMITEspecifica la frecuencia con la que se realiza una operación de confirmación al extraerdocumentos durante una actualización de índice. El valor 0 (cero) indica que una operación deconfirmación sólo se realiza al final del proceso.

El valor debe ser un entero entre 0 (cero) y 2147483647.

Sugerencia de rendimiento: el valor de UPDATEAUTOCOMMIT puede tener un impactosignificativo sobre el rendimiento de las actualizaciones de índice. La operación de confirmaciónque tiene lugar con el intervalo especificado garantiza un punto de comprobación coherentedesde el que reiniciar la actualización de índice, si se interrumpe. Sin embargo, la confirmacióntambién suspende temporalmente el proceso de actualización. Aumentar el valor deUPDATEAUTOCOMMIT (o establecerlo en 0) puede mejorar significativamente el rendimiento dela actualización, especialmente de la inicial. El valor que especifique debe buscar el equilibrioentre las necesidades de rendimiento y las de recuperabilidad, en función de la frecuencia de lasactualizaciones del índice.

ROW_COLUMN_ACCESSEspecifica si el índice de búsqueda de texto se considera seguro para el control de acceso a filas yel control de acceso a columnas.

NOT_SECUREDEspecifica que el índice de búsqueda de texto no se considera seguro para el control deacceso a filas y el control de acceso a columnas. Este es el valor predeterminado.

La tabla base para el índice no debe tener un permiso o máscara activa.

OmniFind Text Search Server 33

Page 40: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

SECUREDEspecifica que el índice se considera seguro para el control de acceso a filas y el control deacceso a columnas.

Un índice de búsqueda de texto debe estar definido como seguro para poder crearse sobreuna tabla con una máscara de columna o permiso activo. Si una función está referenciadapara acceder o modificar datos de una columna enmascarados, la función debe definirsecomo segura. El ID de autorización debe tener la autorización DB_SECADMIN para crear uníndice de búsqueda de texto con el atributo SECURED.

Cuando un índice de búsqueda de texto se crea sobre información confidencial, existenconsideraciones adicionales:

El administrador de bases de datos debe ser consciente de que los datos especificados comocolumnas de clave para el índice de búsqueda de texto se almacenarán en una tablaintermedia de QSYS2 y se enviarán al servidor de búsqueda de texto utilizando protocolos dered.

El administrador de bases de datos debe ser consciente de que los datos indexados por uníndice de búsqueda de texto se envían al servidor de búsqueda de texto utilizando protocolosde red y se almacenan fuera de DB2 en el servidor de búsqueda de texto.

Consejos: si los usuarios alteran un índice de SECURED a NOT SECURED, los usuarios debenasegurarse de que la tabla base no tenga una máscara de permiso activa. De lo contrario, se producirá unerror.Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.

SYSPROC.SYSTS_DROPPuede llamar al procedimiento almacenado SYSPROC.SYSTS_DROP para eliminar un índice de búsquedade texto definido mediante el procedimiento almacenado SYSPROC.SYSTS_CREATE.

Es aconsejable eliminar un índice de búsqueda de texto mediante el procedimiento almacenadoSYSPROC.SYSTS_DROP antes de eliminar la tabla.

Al eliminar la vista que representa el índice de búsqueda de texto, incluso como resultado de unasentencia DROP TABLE CASCADE, se intenta eliminar el índice de búsqueda de texto. Sin embargo,dado que el índice de búsqueda de texto no puede eliminarse bajo control de compromiso, la vista SQLno puede eliminarse bajo control de compromiso.

Si no puede accederse al servidor de búsqueda de texto, la colección del servidor puede quedar huérfana.Si eso ocurre, la colección deberá suprimirse manualmente. Cuando el servidor esté nuevo disponible,utilice la herramienta de administración de OmniFind Text Search Server for DB2 for i para suprimir lacolección del servidor.

34 IBM i: OmniFind Text Search Server for DB2 for i

Page 41: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

En el apartado “Herramientas de administración” en la página 76 encontrará información acerca de lasherramientas que puede utilizar para identificar índices huérfanos y el procedimiento almacenadoSTSPROC.SYSTS_REMOVE o SYSPROC.SYSTS_CLEAR_INDEXES para suprimirlos.

Requisitos previos

Antes de llamar al procedimiento almacenado SYSPROC.SYSTS_DROP, compruebe los siguientesrequisitos previos:v Que se han iniciado las funciones de búsqueda de texto de DB2 llamando al procedimiento

almacenado SYSPROC.SYSTS_START.v El índice de búsqueda de texto debe haberse creado (por invocación del procedimiento almacenado

SYSPROC.SYSTS_CREATE).v Asegúrese de que los siguientes procedimientos almacenados no estén en ejecución para el índice de

búsqueda de texto que desea eliminar: SYSPROC.SYSTS_CREATE, SYSPROC.SYSTS_UPDATE ySYSPROC.SYSTS_DROP.

Autorización

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v Las siguientes autorizaciones del sistema:

– Las autorizaciones del sistema *OBJOPR y *OBJEXIST sobre el índice de texto que debe eliminarse– La autorización del sistema *EXECUTE sobre la biblioteca que contiene el índice de texto que debe

eliminarsev Autoridad administrativa

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSTS_DROP ( esquemaÍndicenulo

, nombreÍndice ) ��

El calificador de esquema es SYSPROC.

Parámetros

esquemaÍndiceIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante.

El tipo de datos de este parámetro es VARCHAR(128).

nombreÍndiceIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifica de forma exclusiva el índice de texto en el subsistema DB2.Debe especificar un valor no nulo en este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contengan

OmniFind Text Search Server 35

Page 42: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

las funciones CONTAINS o SCORE.“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“SYSPROC.SYSTS_UPDATE”Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“SYSPROC.SYSTS_REMOVE” en la página 78Puede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_REMOVE.“SYSTS_CLEAR_INDEXES” en la página 81Puede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_CLEAR_INDEXES. Otra forma implícita es invocar SYSTS_START directamente, que intenta borraríndices huérfanos automáticamente.

SYSPROC.SYSTS_UPDATEPuede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.

Dado que la actualización de un índice de búsqueda de texto es una operación amplia, el índice debúsqueda de texto no se actualiza síncronamente cuando se actualiza la tabla de DB2. En lugar de ello,los cambios de la columna de la tabla de DB2 se capturan mediante un desencadenante y se graban enuna tabla intermedia. El índice de búsqueda de texto se actualizará la próxima vez que se invoque elprocedimiento almacenado SYSPROC.SYSTS_UPDATE o cuando la opción UPDATE FREQUENCYindique que se actualiza. Por tanto, es posible que algunas solicitudes de búsqueda no reflejen lasactualizaciones recientes de la tabla.

Este procedimiento almacenado sólo efectúa el retorno una vez finalizado todo el proceso deactualización del índice de búsqueda de texto en OmniFind Text Search Server for DB2 for i. La duracióndepende del número de entradas de la tabla intermedia en el momento de llamar a SYSTS_UPDATE.Durante el proceso de actualización, sigue siendo posible realizar búsquedas en el índice de búsqueda detexto.

Si se ha producido un problema al indexar un documento de la tabla base, la columna de la tablaintermedia con TOBEDELETED tendrá un valor establecido en E (error) o W (aviso). La columnaERRORMSG tiene valor para registrar mensajes de error. Puede recuperar estos registros con unprocedimiento almacenado que incluya la consulta siguiente:SELECT s.TOBEDELETED, s.ERRORMSG, columnas_baseFROM tabla_base t INNER JOIN QSYS2.tablasintermediasON (QQQ_TEXTSEARCH_KEY(t.k1, t.k2, t.k3, ...) = s.KEYID)WHERE s.TOBEDELETED IN(’E’,’W’)

En este caso, columnas_base es la lista de columnas que es necesario visualizar de la tabla_base.tabla_base es la tabla que se indexa. tabla intermedia es la tabla intermedia indicada en los catálogosdel índice de búsqueda de texto. k1, k2, k3, ... es la lista de columnas de clave de la clave primaria,ID de fila o clave exclusiva utilizada para construir el índice de búsqueda de texto. ERRORMSG es unacolumna que registra los mensajes de error al indexar este documento. Una vez corregidos los errores deesos documentos, ejecute de nuevo la actualización.

Si se solicita una actualización de índice al mismo tiempo que ya se está realizando una actualizaciónpara dicho índice, se devuelve un error. Sólo se permite una actualización a la vez para un índicedeterminado.

Si se crea un índice como SECURED, los datos no enmascarados se recupera de la tabla base y seindexan, como si no hubiera ninguna máscara o permiso creados en esta tabla.

36 IBM i: OmniFind Text Search Server for DB2 for i

Page 43: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Si hay procedimientos de campo creados en la tabla base, se indexan los datos originales sin enmascarar.

Requisitos previos

Antes de llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE, compruebe los siguientesrequisitos previos:v El índice de búsqueda de texto debe haberse creado (por invocación del procedimiento almacenado

SYSPROC.SYSTS_CREATE).v Los siguientes procedimientos almacenados no deben estar en ejecución para el índice de búsqueda de

texto que desea actualizar: SYSPROC.SYSTS_CREATE, SYSPROC.SYSTS_UPDATE ySYSPROC.SYSTS_DROP.

v El servidor de búsqueda de texto en el que reside el índice debe haberse iniciado mediante elprocedimiento almacenado SYSTS_START. La columna SERVERSTATUS de QSYS2.SYSTEXTSERVERSdebe tener el valor '0' (iniciado).

Autorización

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v El privilegio de creación en el esquema. Para obtener más información, consulte el apartado

Autorización, privilegios y propiedad de objetos.v Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v Las siguientes autorizaciones del sistema:

– *USE sobre el mandato Crear archivo lógico (CRTLF)– *CHANGE sobre el diccionario de datos si la biblioteca en la que se crea el índice de texto es un

esquema SQL con un diccionario de datosv Autoridad administrativa

Los privilegios detentados por el ID de autorización de la sentencia también deben incluir como mínimouno de los siguientes:v Para la tabla referenciada:

– El privilegio INDEX sobre la tabla– La autorización del sistema *EXECUTE sobre la biblioteca que contiene la tabla

v Autoridad administrativav Si se especifican nombres SQL y existe un perfil de usuario que tiene el mismo nombre que la

biblioteca en la que se crea el índice de texto, y dicho nombre es diferente del ID de autorización de lasentencia, los privilegios detentados por el ID de autorización de la sentencia deben incluir comomínimo uno de los privilegios siguientes:– Autorización del sistema *ADD sobre el perfil de usuario con ese nombre– Autoridad administrativa

Si se hace referencia a un tipo distinct, los privilegios detentados por el ID de autorización de la sentenciadeben incluir como mínimo uno de los siguientes:v Para cada tipo distinct identificado en la sentencia:

– El privilegio USAGE sobre el tipo distinct, y– La autorización del sistema *EXECUTE sobre la biblioteca que contiene el tipo distinct

v Autoridad administrativa

OmniFind Text Search Server 37

Page 44: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Si el índice se ha creado mediante SYSTS_CREATE como índice SECURED, el ID de autorización debetener la autorización DB_SECADMIN.

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis

�� SYSTS_UPDATE ( esquemaÍndicenulo

, nombreÍndice , opciones ) ��

El calificador de esquema es SYSPROC.

Parámetros

esquemaÍndiceIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante.

El tipo de datos de este parámetro es VARCHAR(128).

nombreÍndiceIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifica de forma exclusiva el índice de texto completo en elsubsistema DB2. Debe especificar un valor no nulo en este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).

OpcionesSerie de caracteres que especifica la opción que está disponible para este procedimiento almacenado.

La opción disponible es USING UPDATE MINIMUM. Esta opción utiliza los valores USING UPDATEMINIMUM que ha especificado para el procedimiento almacenado SYSPROC.SYSTS_CREATE. Iniciauna actualización incremental sólo si se ha alcanzado el número de cambios especificado. El valorpredeterminado es iniciar incondicionalmente el proceso de actualización.

USING UPDATE MINIMUM:

USING UPDATE MINIMUM

Conceptos relacionados:“Recorte de documentos” en la página 15OmniFind Text Search Server for DB2 for i limita el número de caracteres que pueden indexarse paracada documento de texto. A veces, esta limitación de caracteres provoca el recorte de documentos detexto grandes en el índice de búsqueda de texto.Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“SYSPROC.SYSTS_DROP” en la página 34Puede llamar al procedimiento almacenado SYSPROC.SYSTS_DROP para eliminar un índice de búsqueda

38 IBM i: OmniFind Text Search Server for DB2 for i

Page 45: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

de texto definido mediante el procedimiento almacenado SYSPROC.SYSTS_CREATE.

SYSPROC.SYSTS_SHUTDOWNPuede llamar al procedimiento almacenado SYSPROC.SYSTS_SHUTDOWN para concluir las funciones debúsqueda de texto de DB2®. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido) y también finaliza los trabajos del servidor debúsqueda de texto del sistema host.

Una vez completado este procedimiento almacenado, las consultas SQL que utilicen las funcionesCONTAINS o SCORE o los procedimientos almacenados de administración utilizados para elmantenimiento de los índices devolverán una anomalía sin intentar contactar con un servidor debúsqueda de texto.

Los cambios en la tabla base del índice se siguen registrando aunque el servidor haya concluido. Sinembargo, las actualizaciones planificadas del índice no se producirán hasta que se haya invocado aSYSPROC.SYSTS_START.

Autorización

El ID de usuario bajo el que se invoca este procedimiento almacenado debe tener los siguientesprivilegios:v Autorización *EXECUTE sobre el procedimiento.v Privilegios SELECT y UPDATE sobre la tabla SYSTEXTSERVERS.v Autorización *EXECUTE sobre la biblioteca QSYS2 del archivo SYSTEXTSERVERS.v Autorización *JOBCTL o utilización de la función especial de seguridad QIBM_DB_SQLADM.

Para obtener información acerca de las autorizaciones del sistema correspondientes a los privilegios SQL,consulte el apartado GRANT (Privilegios de tabla o vista).

Sintaxis>>-SYSTS_SHUTDOWN--(--+-----------+--)-----------------------------><

+-id_servidor--+’-nombre_alias-’

Parámetros

id_servidor o nombre_aliasEspecifica el identificador del servidor cuyos índices huérfanos deben borrarse. Un idservidor o unnombrealias de servidor es una serie de caracteres. Si no se proporciona ningún identificador, el valorpredeterminado es borrar los índices huérfanos de todos los servidores. La serie del identificadordebe ser un id_servidor válido que exista en la columna SERVERID o un nombre de alias de servidorválido que exista en la columna ALIASNAME de la tabla QSYS2.SYSTEXTSERVERS. Si elidentificador puede convertirse a un valor entero, se interpreta como idservidor. Si el identificador nopuede convertirse a un valor entero, se interpreta como nombrealias de servidor.

El tipo de datos de este parámetro es VARCHAR(128).

Ejemplov Para concluir todos los servidores de producción:

CALL SYSPROC.SYSTS_SHUTDOWN().

v Para concluir un servidor con el ID 1:CALL SYSPROC.SYSTS_SHUTDOWN(1)

v Para concluir un servidor con el nombre de alias "LOCAL_SERVER":CALL SYSPROC.SYSTS_SHUTDOWN(’LOCAL_SERVER’)

OmniFind Text Search Server 39

Page 46: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v Para concluir un servidor con el nombre de alias "local_server":CALL SYSPROC.SYSTS_SHUTDOWN(’local_server’)

Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“CONTAINS”Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Buscar con un índice de búsqueda de textoPuede utilizar las funciones CONTAINS y SCORE en una consulta SQL con OMNIFIND. CONTAINS ySCORE se utilizan para realizar búsquedas en un índice de búsqueda de texto utilizando los criteriosespecificados en un argumento de búsqueda. También puede indexar y realizar búsquedas endocumentos XML.

CONTAINSPuede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.

�� CONTAINS ( nombre-columna , argumento-búsqueda, constante-serie

(1)) ��

Notas:

1 La constante-serie debe ajustarse a las normas de las opciones de argumento-búsqueda.

opciones-argumento-búsqueda:

�(1)

QUERYLANGUAGE = valorRESULTLIMIT = valor

OFFSYNONYM = ON

Notas:

1 No puede especificarse la misma cláusula más de una vez.

40 IBM i: OmniFind Text Search Server for DB2 for i

Page 47: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El esquema es QSYS2.

nombre-columnaEspecifica un nombre calificado o no calificado de una columna que contiene un índice de búsquedade texto en el que debe buscarse. La columna debe existir en la tabla o vista identificada en lacláusula FROM de la sentencia. La columna de la tabla o la columna de la tabla base subyacente dela vista debe tener un índice de búsqueda de texto asociado (SQLSTATE 38H12). La expresiónsubyacente de la columna de una vista debe ser una referencia de columna simple a la columna deuna tabla subyacente, directamente o a través de otra vista anidada.

argumento-búsquedaEspecifica una expresión que devuelve un valor tipo serie que contiene los términos utilizados en labúsqueda. La expresión no puede estar formada sólo por espacios en blanco ni ser la serie vacía(SQLSTATE 38H14). La longitud real de la serie no puede sobrepasar los 32704 bytes. Esta longitudpuede quedar aún más limitada por el valor soportado por el servidor de búsqueda de texto(SQLSTATE 38H10). El valor se convierte a Unicode antes de utilizarlo para realizar búsquedas en elíndice de búsqueda de texto.

constante-serieIdentifica una constante de tipo serie que especifica las opciones de argumento de búsqueda en vigorpara la función.

Las opciones que pueden especificarse como parte de las opciones-argumento-búsqueda son lassiguientes:

QUERYLANGUAGE=valorEspecifica el idioma de la consulta. El valor puede ser cualquiera de los códigos de idiomasoportados. Si no se especifica la opción QUERYLANGUAGE, el valor predeterminado es elvalor de idioma del índice de búsqueda de texto utilizado cuando se invoca la función. Si elvalor de idioma del índice de búsqueda de texto es AUTO, el valor predeterminado paraQUERYLANGUAGE es en_US.

RESULTLIMIT=valorEspecifica el número máximo de resultados que el motor de búsqueda subyacente puededevolver. El valor puede ser un entero de 1 a 2 147 483 647. Si no se especifica la opciónRESULTLIMIT, no habrá ningún límite de resultados en vigor para la consulta.

Es posible que no pueda llamarse a esta función escalar para cada fila de la tabla deresultados, dependiendo del plan elegido por el optimizador. Esta función puede llamarseuna vez para toda la consulta al motor de búsqueda subyacente. Se devuelve un conjunto deresultados de todas las claves primarias coincidentes. A continuación, este conjunto deresultados se une a la tabla que contiene la columna para identificar las filas de resultados.En este caso, el valor RESULTLIMIT actúa como FETCH FIRST ?? ROWS desde el motor debúsqueda de texto subyacente, y puede utilizarse como optimización. Si se llama al motor debúsqueda para cada fila del resultado debido a que este es el mejor plan, la opciónRESULTLIMIT se ignora.

SYNONYM = OFF o SYNONYM = ONEspecifica si debe utilizarse un diccionario de sinónimos asociado con el índice de búsquedade texto. Puede añadir un diccionario de sinónimos a una colección mediante la herramientade sinónimos.

OFF OFF es el valor predeterminado.

ON Se utiliza el diccionario de sinónimos que está asociado con el índice de búsqueda detexto.

El resultado de la función es un entero grande. Si el segundo argumento puede ser nulo, el resultadopuede ser nulo. Si el segundo argumento es nulo, el resultado es el valor nulo.

OmniFind Text Search Server 41

Page 48: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El resultado es 1 si el documento contiene una coincidencia con los criterios de búsqueda especificados enel argumento de búsqueda. De lo contrario, el resultado es 0. Si la columna es nula, el resultado tambiénes 0. Si el argumento de búsqueda es nulo, el resultado es el valor nulo.

CONTAINS es una función no determinística.

Ejemplo 1

La sentencia siguiente busca todos los empleados cuyo currículum contiene �COBOL�.SELECT EMPNOFROM EMP_RESUMEWHERE RESUME_FORMAT = ’ascii’AND CONTAINS(RESUME, ’COBOL’) = 1

Ejemplo 2

El argumento de búsqueda no tiene que ser necesariamente una constante de tipo serie. El argumento debúsqueda puede ser cualquier expresión de serie SQL, incluida una serie contenida en una variable host.La sentencia siguiente busca el término exacto "ate" en la columna COMMENT.

Nota: El término "ate" debe delimitarse mediante comillas dobles para que se busque sólo el términoexacto sin tener en cuenta las variantes lingüísticas.char search_arg[100]; /* variable host de entrada */...EXEC SQL DECLARE C3 CURSOR FORSELECT CUSTKEYFROM K55ADMIN.CUSTOMERSWHERE CONTAINS(COMMENT, :search_arg)= 1ORDER BY CUSTKEY;strcpy(search_arg, "\"ate\""’);EXEC SQL OPEN C3;...

Ejemplo 3

La sentencia siguiente busca aleatoriamente 10 estudiantes que hayan escrito artículos en línea quecontengan la frase "fossil fuel" en español, es decir, "combustible fósil". Estos estudiantes están destinadosa una entrevista radiofónica. Utilice el diccionario de sinónimos que se ha creado para el índice debúsqueda de texto asociado. Dado que sólo son necesarios 10 estudiantes, optimice la consulta mediantela opción RESULTLIMIT para limitar el número de resultados del servidor de búsqueda de textosubyacente.SELECT FIRSTNME, LASTNAME

FROM STUDENT_ESSAYSWHERE CONTAINS(TERM_PAPER, ’combustible fósil’,

’QUERYLANGUAGE= es_ES RESULTLIMIT = 10 SYNONYM=ON’) = 1

Tareas relacionadas:“Buscar en un índice de búsqueda de texto” en la página 14Puede buscar en un índice de búsqueda de texto mediante una sentencia SQL con una funciónCONTAINS o SCORE. En la función se especifican los criterios del argumento de búsqueda.Referencia relacionada:“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

42 IBM i: OmniFind Text Search Server for DB2 for i

Page 49: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“Sintaxis de argumentos de búsqueda” en la página 45Puede especificar un argumento de búsqueda como condición de una búsqueda de términos endocumentos de texto. Consta de parámetros de búsqueda y uno o más términos de búsqueda. Lasfunciones escalares de búsqueda de texto SQL que utilizan argumentos de búsqueda son CONTAINS ySCORE.

SCOREPuede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

��(1)

SCORE ( nombre-columna , argumento-búsqueda, constante-serie

) ��

Notas:

1 La constante-serie debe ajustarse a las normas de las opciones de argumento-búsqueda.

opciones-argumento-búsqueda:

�(1)

QUERYLANGUAGE = valorRESULTLIMIT = valor

OFFSYNONYM = ON

Notas:

1 No puede especificarse la misma cláusula más de una vez.

El esquema es QSYS2.

nombre-columnaEspecifica un nombre calificado o no calificado de una columna que contiene un índice de búsquedade texto en el que debe buscarse. La columna debe existir en la tabla o vista identificada en lacláusula FROM de la sentencia. La columna de la tabla o la columna de la tabla base subyacente dela vista debe tener un índice de búsqueda de texto asociado (SQLSTATE 38H12). La expresiónsubyacente de la columna de una vista debe ser una referencia de columna simple a la columna deuna tabla subyacente, directamente o a través de otra vista anidada.

argumento-búsquedaEspecifica una expresión que devuelve un valor tipo serie que contiene los términos utilizados en labúsqueda. La expresión no puede estar formada sólo por espacios en blanco ni ser la serie vacía(SQLSTATE 38H14). La longitud real de la serie no puede sobrepasar los 32704 bytes. Esta longitudpuede quedar aún más limitada por el valor soportado por el servidor de búsqueda de texto(SQLSTATE 38H10). El valor se convierte a Unicode antes de utilizarlo para realizar búsquedas en elíndice de búsqueda de texto. Si el argumento de búsqueda es nulo, el resultado es el valor nulo.

constante-serieIdentifica una constante de tipo serie que especifica las opciones de argumento de búsqueda en vigorpara la función.

Las opciones que pueden especificarse como parte de las opciones-argumento-búsqueda son lassiguientes:

QUERYLANGUAGE=valorEspecifica el idioma de la consulta. El valor puede ser cualquiera de los códigos de idioma

OmniFind Text Search Server 43

Page 50: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

soportados. Si no se especifica la opción QUERYLANGUAGE, el valor predeterminado es elvalor de idioma del índice de búsqueda de texto utilizado cuando se invoca la función. Si elvalor de idioma del índice de búsqueda de texto es AUTO, el valor predeterminado paraQUERYLANGUAGE es en_US.

RESULTLIMIT=valorEspecifica el número máximo de resultados que el motor de búsqueda subyacente puededevolver. El valor puede ser un entero de 1 a 2 147 483 647. Si no se especifica la opciónRESULTLIMIT, no habrá ningún límite de resultados en vigor para la consulta.

Es posible que no pueda llamarse a esta función escalar para cada fila de la tabla deresultados, dependiendo del plan elegido por el optimizador. Esta función puede llamarseuna vez para toda la consulta al motor de búsqueda subyacente. Se devuelve un conjunto deresultados de todas las claves primarias coincidentes. A continuación, este conjunto deresultados se une a la tabla que contiene la columna para identificar las filas de resultados.En este caso, el valor RESULTLIMIT actúa como FETCH FIRST ?? ROWS desde el motor debúsqueda de texto subyacente, y puede utilizarse como optimización. Si se llama al motor debúsqueda para cada fila del resultado debido a que este es el mejor plan, la opciónRESULTLIMIT se ignora.

SYNONYM = OFF o SYNONYM = ONEspecifica si debe utilizarse un diccionario de sinónimos asociado con el índice de búsquedade texto. Puede añadir un diccionario de sinónimos a una colección mediante la herramientade sinónimos.

OFF OFF es el valor predeterminado.

ON Se utiliza el diccionario de sinónimos que está asociado con el índice de búsqueda detexto.

El resultado de la función es un número de coma flotante de precisión doble. Si el segundo argumentopuede ser nulo, el resultado puede ser nulo. Si el segundo argumento es nulo, el resultado es el valornulo.

El resultado es mayor que 0 pero menor que 1 si la columna contiene una coincidencia con los criteriosde búsqueda especificados por el argumento de búsqueda. Cuanto mayor sea la frecuencia con la que seencuentre una coincidencia, mayor será el valor del resultado. Si la columna no contiene ningunacoincidencia, el resultado será 0. La puntuación también será 0 si la columna es nula.

SCORE es una función no determinística.

Ejemplo

La sentencia siguiente genera una lista de empleados ordenada por el grado de coincidencia de suscurrículums con programador AND (java OR cobol). Además, se devuelve un valor de relevancianormalizado entre 0 (cero) y 100.SELECT EMPNO, INTEGER(SCORE(RESUME, ’programador AND(java OR cobol)’) * 100) AS RELEVANCEFROM EMP_RESUMEWHERE RESUME_FORMAT = ’ascii’ORDER BY RELEVANCE DESC

Tareas relacionadas:“Buscar en un índice de búsqueda de texto” en la página 14Puede buscar en un índice de búsqueda de texto mediante una sentencia SQL con una funciónCONTAINS o SCORE. En la función se especifican los criterios del argumento de búsqueda.Referencia relacionada:

44 IBM i: OmniFind Text Search Server for DB2 for i

Page 51: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“Sintaxis de argumentos de búsqueda”Puede especificar un argumento de búsqueda como condición de una búsqueda de términos endocumentos de texto. Consta de parámetros de búsqueda y uno o más términos de búsqueda. Lasfunciones escalares de búsqueda de texto SQL que utilizan argumentos de búsqueda son CONTAINS ySCORE.

Sintaxis de argumentos de búsquedaPuede especificar un argumento de búsqueda como condición de una búsqueda de términos endocumentos de texto. Consta de parámetros de búsqueda y uno o más términos de búsqueda. Lasfunciones escalares de búsqueda de texto SQL que utilizan argumentos de búsqueda son CONTAINS ySCORE.

En cualquier proceso específico de idioma durante una búsqueda, puede especificar un valor para elparámetro QUERYLANGUAGE como opción de argumento de búsqueda. El valor puede ser cualquierade los códigos de idioma soportados.

Si no se especifica el parámetro QUERYLANGUAGE, el valor predeterminado es el valor de idioma delíndice de búsqueda de texto utilizado cuando se llama a esta función.

Si el valor de idioma del índice de búsqueda de texto es AUTO, el valor predeterminado paraQUERYLANGUAGE es en_US.

Limitaciones

No pueden utilizarse las funciones CONTAINS y SCORE en una restricción SQL o definición de índice.Puede utilizarlas en definiciones de vista y sentencias de consulta SQL con las restricciones siguientes:v Si una vista, expresión de tabla anidada o expresión de tabla común suministra una columna de

búsqueda de texto para una función escalar CONTAINS o SCORE, y si la vista, expresión de tablaanidada o expresión de tabla común en cuestión contiene una cláusula DISTINCT en la sentenciaSELECT más externa, la lista de SELECT debe contener todos los campos de clave correspondientes delíndice de búsqueda de texto. De lo contrario, se devuelve el mensaje SQL 38H12.

v Si una vista, expresión de tabla anidada o expresión de tabla común suministra una columna debúsqueda de texto para una función escalar CONTAINS o SCORE, la vista, expresión de tabla anidadao expresión de tabla común en cuestión no pueden contener una sentencia UNION, EXCEPT oINTERSECT en el nivel más externo de SELECT. De lo contrario, se devuelve el mensaje SQL 38H12.

v Si una expresión de tabla común suministra una columna de búsqueda de texto para una funciónescalar CONTAINS o SCORE, la expresión de tabla común puede referenciarse de nuevo en toda laconsulta sólo si la referencia no suministra una columna de búsqueda de texto para una función escalarCONTAINS o SCORE. De lo contrario, se devuelve el mensaje SQL 38H12.

v No puede crearse una función cuyo origen sean las funciones escalares CONTAINS o SCORE. De locontrario, se devuelve el mensaje SQL SQL0457.

v La consulta puede ejecutarse mediante el motor de consultas SQL (SQE).

OmniFind Text Search Server 45

Page 52: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Búsqueda simple

Para realizar una búsqueda simple de palabras clave, especifique una o varias palabras clave en laconsulta. El motor de búsqueda devuelve los documentos que contienen todas las palabras claveespecificadas o variantes de las mismas.

Por ejemplo, si especifica rey, el motor de búsqueda devolverá todos los documentos que contienen lapalabra rey o reyes. Si especifica la consulta rey lear, el motor de búsqueda devolverá los documentosque contienen los términos rey y lear.

Para visualizar resultados más precisos, utilice palabras clave más específicas. Por ejemplo, especifiquecafé irlandés en lugar de café, o senderismo en Kauai en lugar de vacaciones en Hawai.

Si una búsqueda simple de palabras clave devuelve demasiados documentos que no corresponden a loque está buscando, puede utilizar operadores para refinar la búsqueda.

Exclusión de términos de una búsqueda

Para excluir términos se utiliza el signo menos (-). Por ejemplo, si desea buscar los documentos quecontienen el término lear, pero no eduardo, especifique la consulta lear -eduardo.

El signo menos (-) también se aplica a un término y a sus variantes. Por ejemplo, la consulta -eduardoexcluye los documentos que contienen la palabra eduardiano.

Búsqueda de frases

Si desea asegurarse de que los términos se visualicen exactamente en el orden en que los ha especificado,puede utilizar comillas dobles. Por ejemplo, si desea visualizar los documentos que contienenexactamente el término rey lear, pero no frases relacionadas, tales como real lear o rey y reina lear,especifique "rey lear". La búsqueda no distingue entre mayúsculas y minúsculas, pero las variantesterminológicas no se consideran coincidencias.

Carácter comodín en una búsqueda

El carácter comodín (*) ayuda a encontrar documentos cuando no se conoce la palabra completa o si sedesea buscar variantes del término. Por ejemplo, la consulta chec* devuelve los documentos quecontienen los términos checo, checoslovaquia, checoslovaco, república checa y otros resultados posibles.

También puede utilizar el carácter comodín en una búsqueda de frase. Por ejemplo, la consulta "John *Kennedy" devuelve los documentos que contienen los términos John Fitzgerald Kennedy y John FKennedy, pero no John Kennedy. La consulta Mi*l Gorbachev devuelve Mikhail Gorbachev.

La adición de un carácter comodín al principio de una consulta (por ejemplo, *hec) puede provocar queel motor de búsqueda tarde más tiempo en devolver resultados.

Búsquedas de uno de los términos como mínimo

El operador lógico OR especifica que debe visualizarse como mínimo uno de los términos de unaconsulta en el documento devuelto. Por ejemplo, la consulta (othello OR otelo) devuelve losdocumentos que contienen el término othello u otelo.

También puede utilizar los operadores lógicos AND, OR y NOT en combinaciones utilizando paréntesis.Por ejemplo, la consulta cougar OR (jaguar AND NOT coche) devuelve los documentos que contienen lostérminos cougar o jaguar, pero no coche.

46 IBM i: OmniFind Text Search Server for DB2 for i

Page 53: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Debe especificar los operadores lógicos AND, OR y NOT en mayúsculas. Utilice los paréntesis paraespecificar agrupaciones.Conceptos relacionados:“Búsqueda XML” en la página 53Puede indexar y realizar búsquedas en documentos XML. La gramática de búsqueda XML utiliza unsubconjunto del lenguaje W3 XPath con ampliaciones para búsqueda de texto. Las ampliaciones dansoporte a búsquedas de rango de valores numéricos, de fecha (Date) y fecha y hora (DateTime) asociadoscon un atributo o elemento XML. Los elementos estructurales pueden utilizarse por separado ocombinarse con texto sin formato en las consultas.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Ejemplos de consulta simpleLas consultas simples de las funciones CONTAINS y SCORE buscan una o varias palabras en un índicede búsqueda de texto.

El motor de búsqueda ignora los espacios en blanco entre caracteres. La serie de búsqueda no debe estarvacía ni contener sólo espacios en blanco (SQLSTATE 38H14).

La tabla siguiente muestra algunos ejemplos de consultas de búsqueda simples.

Tabla 3. Ejemplos de consulta simple

Tipos de palabras debúsqueda Ejemplos Resultados de consulta

Palabra única rey Devuelve todos los documentos quecontienen la palabra rey o reyes. Estaconsulta compara diferentes formulariosde superficie y no es sensible a lasmayúsculas y minúsculas.

Varias palabras rey lear Devuelve todos los documentos quecontienen la palabra rey y lear. Eloperador predeterminado es el operadorlógico AND.

Los operadores AND y + están implícitos en todas las consultas. Por ejemplo, la consulta Rey Leardevuelve los mismos resultados que Rey AND Lear o Rey + Lear.

Debe especificar los operadores lógicos NOT, AND y OR en mayúsculas.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevancia

OmniFind Text Search Server 47

Page 54: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

que mide hasta que punto un documento coincide con la consulta.

Operadores de búsqueda avanzadaPuede utilizar operadores de búsqueda avanzada para refinar los resultados de búsqueda de lasfunciones CONTAINS y SCORE.

En la tabla siguiente, la primera columna describe el operador que puede utilizarse en una consulta debúsqueda. Debe especificar los operadores lógicos NOT, AND u OR en mayúsculas. La segunda columnamuestra una consulta de ejemplo que puede especificarse. La tercera columna describe los tipos deresultados que puede observar en la consulta de ejemplo.

Tabla 4. Operadores de búsqueda avanzada y ejemplos de consultas complejas

Operadores Ejemplos Resultados de consulta

AND "Rey Lear" AND "Otelo"

"Rey Lear" "Otelo"

Cualquier consulta devolverá losdocumentos que contengan ambostérminos, Rey Lear y Otelo. AND es eloperador de conjunción predeterminado.Si no hay ningún operador lógico entrelos dos términos, se utiliza el operadorAND. Por ejemplo, la consulta Rey Leares igual a la consulta Rey AND Lear.

OR "Rey Lear" OR Lear Devuelve los documentos que contienenRey Lear o sólo Lear. El operador ORenlaza los dos términos y busca undocumento coincidente si alguno de losdos términos existe en un documento.

NOT "Rey Lear"NOT "Norman Lear"

Devuelve los documentos que contienenRey Lear, pero no Norman Lear.

" "

(Coincidencia exacta)

Primera consulta:

"Rey Lear"

Segunda consulta:

"rey"

La primera consulta devuelve la fraseexacta Rey Lear.

La segunda consulta devuelve sólo lapalabra rey sin otras variantes, talescomo reyes o reyezuelo.

*

(Carácter comodín)

test*te*t

Devuelve los documentos que puedencoincidir con las posibles combinaciones,como por ejemplo test, tests y tester,o test y text.

^

(Factor de coincidencia de puntuación)número^dealguna palabra o frase

Primera consulta:

"Rey Lear"^4 "Ricardo III"

Segunda consulta:

title:(descarga de software)^5pdf viewer -shipping

La primera consulta fuerza a losdocumentos que contienen la frase ReyLear a visualizarse más arriba en la listade resultados de búsqueda.

La segunda consulta fuerza a undocumento titulado descarga desoftware a visualizarse más arriba en lalista de resultados.

Aunque un factor de coincidencia (boostfactor) debe ser positivo, puede serinferior a 1. Por ejemplo, puede ser de0,2. El número del factor de coincidenciano tiene límite.

+

(Includes)

+Lear Rey Devuelve todos los documentos quecontienen Lear y Rey, que es lo mismoque la consulta Lear AND Rey.

48 IBM i: OmniFind Text Search Server for DB2 for i

Page 55: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 4. Operadores de búsqueda avanzada y ejemplos de consultas complejas (continuación)

Operadores Ejemplos Resultados de consulta

-

(Excludes)

"Rey Lear" -"Lear Jet" Devuelve los documentos que contienenRey Lear, pero no Lear Jet.

( ) (Rey OR Lear) AND obras Devuelve los documentos que contienenRey o Lear y obras. Los paréntesisgarantizan que se encuentre obras y eltérmino Rey o Lear esté presente.

\

(Carácter de escape)

\(1\+1\)\:2 Devuelve los documentos que contienen(1+1):2. Use \ como carácter de escapepara poder utilizar caracteres especialesque normalmente forman parte de lasintaxis de consulta. Si un carácterespecial va precedido del carácter deescape, el carácter especial se analizacomo parte de la consulta. Los caracteresespeciales son: +, -, &&, ||, !, (, ), {, }, [,], ^, ", ~, *, ?, : y \. Si se borra uncarácter especial, éste se analiza comoparte de la consulta.

%

Términos opcionales

log %file Devuelve los documentos que incluyenel término log y opcionalmente incluyenel término file.

~

Búsqueda difusa

analytics~analytics~0.8

La primera consulta devuelve losdocumentos que incluyen los términosanalytics, analyze, analysis, etc.

Una consulta de búsqueda difusa buscasecuencias de caracteres que no sólo soniguales sino similares al término deconsulta. Utilice el símbolo de tilde (~)al final de un término para realizar unabúsqueda difusa.

Puede añadir un parámetro opcionalpara especificar la similitud necesaria.Especifique un valor superior a 0 einferior a 1. El valor debe ir precedidode un 0 y coma decimal, por ejemplo,0,8. Un valor más cercano a 1 hacecoincidir los términos con una similitudmayor. Si no se especifica el parámetro,el valor predeterminado es 0,5.

Restricción: los caracteres especiales noestán soportados en las consultas debúsqueda de proximidad.

OmniFind Text Search Server 49

Page 56: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 4. Operadores de búsqueda avanzada y ejemplos de consultas complejas (continuación)

Operadores Ejemplos Resultados de consulta

~

Búsquedas de proximidad

"IBM WebSphere"~7 Devuelve los documentos que contienen"IBM" y "WebSphere" con siete palabrasentre sí.

Una búsqueda de proximidad busca losdocumentos que contienen términosdentro de un número especificado depalabras entre sí. Utilice el símbolo detilde (~) para realizar una búsqueda deproximidad.

La búsqueda de proximidad estásoportada para términos individuales,no para frases. Además, tenga en cuentaque una palabra después de unainterrupción de frase no se consideraadyacente a las palabras de la fraseanterior.

Restricción: los caracteres especiales noestán soportados en las consultas debúsqueda de proximidad.

Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Búsqueda de caracteres especialesOmniFind admite la indexación y búsqueda de caracteres especiales.

Puede buscar caracteres especiales como otros términos de consulta. Para encontrar un carácter especialen un documento, incluya dicho carácter en la expresión de consulta. En algunos casos, es necesario salirde caracteres especiales con un carácter de escape.

Escape de caracteres especiales

Los caracteres especiales pueden desempeñar distintas funciones en la sintaxis de la consulta. Porejemplo, los signos de interrogación (?) pueden utilizarse como caracteres comodín. Para buscar uncarácter especial que tiene una función especial en la sintaxis de la consulta, debe salir del carácterespecial añadiendo una barra inclinada invertida antes del mismo, por ejemplo:v Para buscar la serie “where?”, especifique un escape para el signo de interrogación de la manera

siguiente: “where\?”v Para buscar la serie “c:\temp,” especifique un escape para los dos puntos y la barra invertida de este

modo:“c\:\\temp”

Si no especifica un escape para estos caracteres especiales, es posible que se produzcan errores desintaxis.

50 IBM i: OmniFind Text Search Server for DB2 for i

Page 57: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 5. Caracteres especiales que deben especificarse con escape para poder realizar una búsqueda

Carácter especialNotas sobre el comportamiento si no se especificaescape

Ampersand (&)

Asterisco (*) Se utiliza como carácter comodín.

Signo de arroba (@) Se genera un error de sintaxis cuando el carácter dearroba es el primer carácter de una consulta. Enexpresiones xmlxp, el signo de arroba se utiliza parahacer referencia a un atributo.

Corchetes [ ] Se utiliza en expresiones xmlxp para buscar en elcontenido de elementos y atributos.

Llaves { } Genera un error de sintaxis.

Barra inclinada invertida (\)

Signo de intercalación (^) Se utiliza para ponderar (aumentar) términos.

Dos puntos (:) Se utilizan para realizar búsquedas en el contenido delos campos.

Signo de igualdad (=) Genera un error de sintaxis.

Signo de exclamación (!) Se devuelve un error de sintaxis cuando el signo deinstalación es el primer carácter de una consulta.

Barra inclinada (/) En expresiones xmlxp, una barra inclinada se utilizacomo separador de elementos de vía de acceso.

Símbolo Mayor que (>); Símbolo Menor que (<) Se utiliza en expresiones xmlxp para comparar el valorde un atributo. De lo contrario, estos caracteres generanerrores de sintaxis.

Signo menos (-) Cuando un signo menos es el primer carácter de untérmino, sólo se devuelven los documentos que nocontienen el término.

Paréntesis ( ) Se utilizan para agrupación.

Signo de porcentaje (%) Especifica que un término de búsqueda es opcional.

Signo más (+)

Signo de interrogación (?) Se maneja como carácter comodín.

Punto y coma (;)

Comillas simples (‘) Las comillas simples se utilizan para contenerexpresiones xmlxp.

Tilde (~) Se maneja como operadores de búsqueda difusa yproximidad

Barra vertical (|)

El escape de caracteres especiales que no desempeñan ninguna función especial en la sintaxis de laconsulta es opcional. En la siguiente tabla se muestran algunos ejemplos de caracteres especiales que norequieren escape.

Tabla 6. Ejemplos de caracteres especiales que no requieren escape.

Carácter especialNotas sobre el comportamiento si no se especificaescape

Coma (,)

Signo de dólar ($)

OmniFind Text Search Server 51

Page 58: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 6. Ejemplos de caracteres especiales que no requieren escape. (continuación)

Carácter especialNotas sobre el comportamiento si no se especificaescape

Punto (.) En expresiones xmlxp, un punto se utiliza para buscarel contenido de los elementos.

Signo de almohadilla (#)

Subrayado (_)

Caracteres especiales adyacentes a términos de consulta

Cuando existe un carácter especial adyacente a un término de la consulta, se devuelven los documentosque contienen el carácter especial y la palabra en el mismo orden. Por ejemplo, si busca “30$”, seencuentran documentos que contienen “30$”, pero no documentos que contengan “$30”. No obstante, sibusca “30 $” (con un espacio), se encuentran todos los documentos que contienen “30” y “$” en cualquierlugar del documento, incluidos “30$” y “$30”.

Cuando un carácter especial está adyacente a una palabra vacía de la consulta, la palabra vacía no seelimina de la consulta. Por ejemplo, si busca “at&t”, la palabra vacía “at” no se elimina. En cambio, sibusca “at & t” con espacio, se elimina la palabra “at”.

Cuando un carácter especial separa dos palabras, la secuencia de símbolos se busca como secuencia. Porejemplo, si busca “jack_jones”, se encuentran documentos que contienen “jack_jones”, pero nodocumentos que contienen “jack_and_jones”.

Las palabras adyacentes a caracteres especiales se lematizan. Por ejemplo, si busca “cats&dogs” en inglés,se encuentran documentos que contienen “cat&dog”.

Puede utilizar caracteres en expresiones de búsqueda con caracteres comodín. Por ejemplo, si busca“ja*_”, se encuentran documentos que contienen “jack_jones”. No obstante, no pueden utilizarsecaracteres comodín para encontrar caracteres especiales. Por ejemplo, la búsqueda “ca*s” encontrará losdocumentos que contienen “cats”, “categories” o “cas”, pero no los documentos que contienen “ca_s”.

Indexación de caracteres especiales

Durante la simbolización y el proceso idiomático, el servidor OmniFind identifica e indexa los caracteresespeciales como signos de puntuación. Los caracteres especiales son delimitadores de símbolos.

Por ejemplo, “jack_jones” tiene como unidades léxicas tres símbolos distintos: “jack”, “_” y “jones”. Loscorreos electrónicos, URL y vías de acceso de archivo se desglosan en unidades léxicas, por ejemplo:v [email protected] tiene las unidades léxicas jack _ jones @ ibm . comv http://www.ibm.com tiene las unidades léxicas http :// www . ibm . com

Los caracteres especiales no ocupan una posición de símbolo en el archivo. Por ejemplo, "jack_jones" seindexa con el carácter de subrayado en la misma posición de símbolo que "jack". Los caracteres especialestampoco ocupan ninguna posición de símbolo si se incluyen espacios. Por ejemplo, “jack_jones” se indexadel mismo modo que “jack _ jones”.

La posición del símbolo se utiliza para la búsqueda de frases exactas y para la búsqueda de proximidad.Por ejemplo, si un documento contiene la expresión jack_jones, al buscar la frase exacta ““jack jones”” seencuentra este documento.

52 IBM i: OmniFind Text Search Server for DB2 for i

Page 59: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Cuando una secuencia de caracteres especiales se indexa por separado, dichos caracteres no se buscan enningún orden especial. Por ejemplo, al buscar “#$” también se encuentran los documentos que contienen“$#”.

Caracteres especiales en idiomas CJK

Para buscar una secuencia de caracteres que incluya caracteres especiales, la expresión de consulta debeincluir los caracteres especiales. Si omite los caracteres especiales de la expresión de consulta, es posibleque la secuencia de caracteres no se encuentre. En idiomas no CJK, la secuencia de caracteres seencuentra siempre, aunque la expresión de consulta omita los caracteres especiales. Por ejemplo, si undocumento indexado contiene john_smith, puede buscar john_smith o "john smith" (coincidencia exacta,sin el carácter de subrayado) y ambas consultas devuelven el documento que contiene john_smith.

Restricción: no puede buscar los siguientes caracteres especiales en documentos CJK: ? * \

Ejemplo de utilización de las funciones CONTAINS y SCOREPuede utilizar las funciones CONTAINS y SCORE en la misma consulta. La consulta busca en un índicede búsqueda de texto y devuelve si y con qué frecuencia el documento de texto coincide con los criteriosdel argumento de búsqueda.

El ejemplo de la tabla siguiente utiliza datos de la tabla base BOOKS con las columnas ISBN(VARCHAR(20)), ABSTRACT (VARCHAR(10000)) y PRICE (INTEGER).

Tabla 7. La tabla base BOOKS

ISBN ABSTRACT PRICE

i1 "a b c" 7

i2 "a b d" 10

i3 "a e a" 8

Ejecute la consulta siguiente:SELECT ISBN, SCORE(ABSTRACT,’"b"’)FROM BOOKSWHERE CONTAINS (ABSTRACT,’"b"’) = 1

Esta consulta devuelve las dos filas siguientes:i1, 0.3i3, 0.4

Los valores de puntuación pueden diferir en función del contenido de la columna de texto.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Búsqueda XMLPuede indexar y realizar búsquedas en documentos XML. La gramática de búsqueda XML utiliza unsubconjunto del lenguaje W3 XPath con ampliaciones para búsqueda de texto. Las ampliaciones dan

OmniFind Text Search Server 53

Page 60: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

soporte a búsquedas de rango de valores numéricos, de fecha (Date) y fecha y hora (DateTime) asociadoscon un atributo o elemento XML. Los elementos estructurales pueden utilizarse por separado ocombinarse con texto sin formato en las consultas.

Los documentos deben indexarse para que incluyan el código XML para poder realizar búsquedas en elíndice mediante la sintaxis de consulta xmlxp. La indexación de documentos se realiza mediante laopción “FORMAT XML” durante la creación del índice.

Los índices creados en un release anterior pueden utilizarse para realizar búsquedas. Sin embargo, losdocumentos indexados en un release anterior no contienen la información necesaria para utilizar todas lasprestaciones de búsqueda XML disponibles en un release más reciente. Los documentos añadidos oactualizados en el índice de búsqueda de texto después de la actualización al nuevo release incluyen lainformación adicional.

Es posible que, como resultado de una actualización, los documentos indexados en el release anterior nose incluyan en algunos resultados de búsqueda. Puede utilizarse el procedimiento almacenadoSYSPROC.SYSTS_REPRIMEINDEX para reconstruir el índice y resolver este problema.

Para utilizar las funciones incorporadas CONTAINS y SCORE de OMNIFIND para buscar datos XML, laserie de búsqueda debe empezar por el prefijo de búsqueda @xmlxp:. El prefijo va seguido de unaexpresión de consulta de búsqueda XML válida. El prefijo de término 'opaco' @xmlxp indica que unabúsqueda se realiza utilizando la expresión de vía de acceso de consulta.

Por ejemplo: CONTAINS(columnname, '@xmlxp:’’expresión_consulta’’ ').

Las comillas simples ' ’ que entrecomillan la expresión_consulta deben ser dobles, ya que se encuentrandentro de una serie SQL, siendo en realidad una serie dentro de otra serie.

El prefijo de término opaco @xpath: utilizado en releases anteriores de OmniFind Text Search Server forDB2 for i está soportado a efectos de compatibilidad con versiones anteriores. Sin embargo, ha quedadoen desuso y no es aconsejable utilizarlo.

A continuación figura una lista donde se resaltan las características clave de la búsqueda XML:

Búsqueda estructural XML

Mediante la inclusión de términos XML opacos especiales en las consultas, puede buscar en documentosXML elementos estructurales y texto cuyo ámbito sea el de dichos elementos. Los elementos estructuralesson nombres de códigos, nombres de atributos y valores de atributos. Los nombres de elementos ycódigos son sensibles a las mayúsculas y minúsculas.

Señalización de consultas XML

La señalización es el proceso de analizar la entrada para generar señales. El texto sin formato de lostérminos de consulta XML se señaliza del mismo modo que el texto de los términos de consulta no XML.Una excepción son los términos opacos anidados, que no están soportados. La búsqueda de texto sinformato no es sensible a las mayúsculas y minúsculas.

Esquema XML y DTD

Los esquemas XML asociados con el documento XML no se descargan, y los valores predeterminados nose indexan.

Valores numéricos

Los predicados que comparan valores de atributos o elementos con números están soportados.

54 IBM i: OmniFind Text Search Server for DB2 for i

Page 61: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Valores de elementos

Los predicados que comparan valores de elementos con números o fechas están soportados. El elementoque contiene la fecha o el número debe ser un elemento XML que contenga sólo el número o la fecha.Los espacios en blanco iniciales y finales se ignoran.

Valores de tipo serie

La utilización del operador = para un argumento de tipo serie en un predicado requiere la coincidenciacompleta de todas las palabras clave de la serie con las señales del ámbito de texto identificado. El ordende las señales no es significativo al realizar la comparación.

Valores DateTime

Los predicados que comparan atributos o elementos de tipo Date o DateTime están soportados.

Expresiones de vía de acceso:

Tabla 8. Expresiones de vía de acceso:

Expresión @xmlxp Descripción

TagName Selecciona un código denominado TagName y todos loshijos de dicho código.

@AttributeName Selecciona un atributo denominado @AttributeName.

/ Realiza una selección del nodo raíz.

// Selecciona los códigos y atributos coincidentes quedescienden de la posición actual y coinciden con laexpresión.

. Self: el nodo de elemento o código actual.

Tabla 9. Ejemplos de expresiones de vía de acceso:

Expresión @xmlxp Resultado

/Document Devuelve todos los documentos con un código de nivelsuperior Document.

//Document Devuelve todos los documentos con un código Documenten cualquier nivel.

/Document/Child1 Devuelve todos los documentos con un código de nivelsuperior Document que tienen un código hijo directoChild1.

/Document//Child1 Devuelve todos los documentos con un código de nivelsuperior Document que tienen un código descendienteChild1 en cualquier nivel.

/Root/@attr1 Devuelve todos los documentos con un código de nivelsuperior Root con un atributo attr1.

/Root//@attr1 Devuelve todos los documentos con un código de nivelsuperior Root con un atributo attr1 en dicho código raízo en cualquier código descendiente.

//@attr1 Devuelve todos los documentos que tienen un atributo@attr1 en cualquier nivel.

Nota: La expresión de búsqueda XML debe tener un código o nombre de atributo real en la expresión devía de acceso relativa. / y // no son por sí mismos consultas de búsqueda válidas.

OmniFind Text Search Server 55

Page 62: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Las expresiones de vía de acceso sólo se permiten hacia adelante, y sólo en un único eje.

Es aconsejable que una expresión de vía de acceso empiece por un carácter / o //. Esto indica que elcontexto inicial de la expresión es el nodo raíz del documento. Si se omite el carácter inicial / o //, laexpresión se compara en cualquier nivel. Por ejemplo, 'Sentences' se trata como ’//Sentences’. Elcomportamiento está definido de esta manera para que sea compatible con releases anteriores y no sigueel estándar de W3 o SQL/XML.

Soporte de comodín de expresiones de vía de acceso

En la expresión de vía de acceso, puede utilizarse el carácter comodín especial * para indicar exactamenteun código con cualquier nombre.

Los comodines finales de expresión de vía de acceso se ignoran.

Las siguientes utilizaciones de comodines de expresión de vía de acceso no están soportadas yprovocarán un error:v Una expresión que haga referencia sólo a comodines y no a elementos o atributos específicos.v Un atributo de comodín en cualquier nivel: /Tag/@*.v Un comodín que preceda inmediatamente a una expresión de predicado: /Root/*[//anytag].v Un comodín utilizado en una comparación de predicados: /Root[* > 5].v Un comodín como prefijo de espacio de nombres XML: //*:tagname.v Un comodín con un espacio de nombres XML como prefijo: //ns:*.v Un carácter comodín utilizado como parte de un nombre de código: /start*.

Tabla 10. Ejemplos de comodines de expresión de vía de acceso:

Expresión @xmlxp Resultado

/Root/*/T1 Todos los documentos que tengan un código de nivelsuperior Root que tenga un código descendiente T1 conun nivel intermedio.

/Root/*//T1 Todos los documentos que tengan un código de nivelsuperior Root que tenga un código descendiente T1 conuno o más niveles intermedios.

Predicados

Los predicados se utilizan para especificar un valor o condición que un nodo de elemento o atributo debecumplir. Los predicados se especifican siempre entre corchetes cuadrados: [].

Tabla 11. Ejemplos de predicados:

Expresión @xmlxp Resultado

/Book[Sentences] El código de nivel superior es Book y debe tener un hijodirecto Sentences.

/Book[.//Sentences and .//Author] El código de nivel superior es Book y debe tener losdescendientes Sentences y Author. Cada descendientepuede estar a cualquier nivel por debajo de Book.

Dado que las expresiones de vía de acceso siempre se especifican hacia adelante y están limitadas a unúnico acceso, las expresiones de vía de acceso en predicados deben ser relativas al nodo actual./Book[/Root] y /Book[//Root] no son válidas, ya que en ambos casos la expresión de vía de acceso delpredicado empieza por el código de nivel superior ‘Root' en lugar del nodo actual.

56 IBM i: OmniFind Text Search Server for DB2 for i

Page 63: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Comparaciones numéricas

OMNIFIND admite los operadores =, <=, >=, >, < y != para comparaciones de elementos y atributos convalores enteros y de coma flotante.

Si se trata de elementos simples, sólo se indexan sus valores numéricos. No pueden contener caracteresadicionales (aparte del espacio en blanco) ni tener elementos descendientes. Los elementos complejos seindexan sólo como texto.

Tabla 12. Ejemplos de comparación numérica:

Expresión @xmlxp Resultado

/Book[@id_num = 12345] El código de nivel superior es Book y debe tener unatributo id_num con el valor 12345.

/Book[Cost <= 100,50] El código de nivel superior es Book. Book tiene elelemento hijo directo Cost cuyo valor numérico esinferior o igual a 100,50.

Comparaciones de Date y DateTime

OMNIFIND admite los operadores =, <=, >=, >, < y != para comparaciones de elementos y atributos convalores de tipo Date y DateTime.

En los elementos simples, sólo se indexan sus valores DateTime. Estos elementos no pueden contenercaracteres adicionales (aparte del espacio en blanco) ni tener elementos descendientes. Los elementoscomplejos se indexan sólo como texto.

Durante la indexación, se examinan los valores de atributo y el texto contenidos dentro de códigos XMLsimples. Si se determina que el texto coincide con un formato ISO de fecha (Date) o de fecha y hora(DateTime), se indexa como un valor Date o DateTime que puede buscarse en un predicado.

Durante una búsqueda, el valor Date o DateTime debe incluirse en una llamada a una función xs:date()o xs:dateTime() para que se reconozca como el tipo de datos correcto.

Un tipo de datos XML DateTime de un documento XML puede especificar un valor de huso horario. Sinembargo, al indexar un valor DateTime, el servidor de búsqueda de texto trunca los valores de husohorario. Por tanto, los husos horarios no se tienen en cuenta durante las búsquedas XML que implican atipos de datos Date o DateTime.

Además, un valor DateTime con la hora 24 sólo se permite si los minutos y los segundos son cero. Setratará como un valor entre el último instante del día y el primer instante del día siguiente.

Cuando se especifica un valor Date o DateTime en un predicado de búsqueda XML, se produce un errorde sintaxis si se especifica un huso horario en el valor.

El tipo de datos DateTime admite un máximo de 12 dígitos de segundos fraccionarios.

Tabla 13. Ejemplos de comparación con Date y DateTime:

Expresión @xmlxp Resultado

/Book[@publishDate > xs:date(“2000-01-01”)] El código de nivel superior es Book. Book tiene unatributo publishDate que es mayor que la fecha2000-01-01.

/Book[purchaseTime > xs:dateTime(“2009-05-20T13:00:00”)]

El código de nivel superior es Book. Book tiene un hijodirecto purchaseTime que es una expresión DateTimemayor que 2009-05-20T13:00:00.000000.

OmniFind Text Search Server 57

Page 64: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Funciones contains y excludes en el código XML

Las funciones contains y excludes se utilizan para realizar búsquedas de texto completas en el código XML.La función contains devuelve true si la consulta se encuentra dentro del nodo destino; excludes devuelvetrue si la consulta No se encuentra dentro del nodo destino.

Por ejemplo, podemos buscar todos los documentos con un código de nivel superior denominado email yun descendiente directo denominado body que contenga variantes de la frase “Presupuesto dedepartamento”.@xnkxo:’’/email[body contains (“presupuesto de departamento”)]’’

El texto sin formato pasado a la función contains o excludes se maneja del mismo modo que cualquier otrabúsqueda de texto sin formato. La búsqueda no distingue entre mayúsculas y minúsculas y se tienen encuenta las variantes lingüísticas. La consulta anterior encontrará “presupuestos de departamentos” ytambién “presupuesto para el departamento”.

La búsqueda puede restringirse a una coincidencia exacta mediante las comillas tradicionales, porejemplo, @xmlxp:’’/email[body contains(“””presupuesto de departamento”””)] ’’. Las comillas queindican una coincidencia exacta deben ser dobles para que no se interpreten como el final de la serie detexto sin formato de contains.

Tabla 14. Ejemplos de funciones contains y excludes:

Expresión @xmlxp Resultado

/Book[abstract contains(“gato AND perro”)] Código de nivel superior Book que tiene un código hijoabstract que contiene variantes lingüísticas de lostérminos gato y perro.

/Book[abstract contains(“gato AND perro”)]/Book/@title[. contains(“gato OR perro”)]

Código de nivel superior Book que tiene un atributotitle que contiene variantes lingüísticas de gato o perro.

/Book/Title[. contains(“””Todos los buenos perrosvan al cielo”””)]

Código de nivel superior Book con un hijo directo Titleque contiene todos los buenos perros van al cielo pororden, y sin tener en cuenta las variantes lingüísticas.

/Book[abstract excludes(“gato AND perro”)] Código de nivel superior Book que tiene un código hijoabstract que no contiene variantes lingüísticas de lostérminos gato y perro.

Operador de comparación de series completas

El operador = con un argumento de tipo serie en un predicado requiere la coincidencia completa de todaslas señales de la serie con todas las señales del ámbito de texto identificado. Los equivalentes lingüísticosno se tienen en cuenta. El orden de los términos buscados no es significativo. No es obligatorio que elelemento o atributo contengan sólo el texto buscado.

Tabla 15. Ejemplos de operador de comparación de series completas:

Expresión @xmlxp Resultado

/Book[@author = “Nicholas Lawrence”] Código de nivel superior Book que tiene un atributoauthor. El atributo author debe contener los términosNicholas Lawrence. Las variantes lingüísticas de esostérminos no se consideran coincidencias.

/Book[author = “””Nicholas Lawrence”””] Código de nivel superior Book que tiene un descendientedirecto author. El atributo author debe contener lostérminos Nicholas Lawrence por orden. Las varianteslingüísticas de esos términos no se considerancoincidencias.

58 IBM i: OmniFind Text Search Server for DB2 for i

Page 65: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Operadores lógicos

Pueden utilizarse los operadores lógicos and y or en los predicados.

Tabla 16. Ejemplos de operadores lógicos:

Expresión @xmlxp Resultado

/Book[@author = “””Nicholas Lawrence”””]/Price[. <1000 and @unit = “dollars”]

Código de nivel superior Book que tiene un atributoauthor. El atributo author debe contener los términosNicholas Lawrence por orden. Las variantes lingüísticasde esos términos no se consideran coincidencias.

Book debe tener un hijo directo Price con el valor <1000.El nodo Price debe tener un atributo @unit que tenga elvalor dollars.

Precedencia de operadores

En los predicados de búsqueda XML, los operadores de contención y comparación tienen preferenciasobre los operadores lógicos, y todos los operadores lógicos tienen la misma preferencia.v Los operadores de contención son contains y excludes.v Los operadores de comparación son =, !=, <, >, <= y >=.v Los operadores lógicos son and y or.

Puede utilizar paréntesis para garantizar la precedencia deseada.Referencia relacionada:“Sintaxis de argumentos de búsqueda” en la página 45Puede especificar un argumento de búsqueda como condición de una búsqueda de términos endocumentos de texto. Consta de parámetros de búsqueda y uno o más términos de búsqueda. Lasfunciones escalares de búsqueda de texto SQL que utilizan argumentos de búsqueda son CONTAINS ySCORE.“SYSPROC.SYSTS_REPRIMEINDEX” en la página 80Puede ajustar (reprime) el índice e iniciar una actualización inicial mediante el procedimiento almacenadoSYSPROC.SYSTS_REPRIMEINDEX. Utilice este procedimiento almacenado cuando desee restaurar datosdesde la tabla base.“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

Soporte de espacio de nombres en búsquedas XMLPuede utilizar un espacio de nombres para establecer el ámbito de los elementos y atributos de undocumento. Los espacios de nombres resultan de utilidad para restringir la búsqueda de consultas a loselementos significativos del documento.

Visión general

En XML, el desarrollador elige los nombres de elementos y atributos. Estos nombres pueden crearconflictos cuando se mezclan documentos XML procedentes de aplicaciones diferentes.

OmniFind Text Search Server 59

Page 66: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Por tanto, resulta de utilidad restringir la búsqueda de consultas a los elementos significativos deldocumento, especialmente cuando pueden indexarse varios tipos de documentos diferentes. La restricciónde la búsqueda puede realizarse mediante espacios de nombres.

Los espacios de nombres proporcionan el ámbito de los elemento y atributoss del documento paragarantizar la interpretación correcta de los valores. Los espacios de nombres se describen con un nombrelargo (URI) y, opcionalmente, un nombre abreviado denominado Qname (nombre calificado).<?xml version=’1.0’?>

<doc xmlns:x="http://example.com/ns/abc"><x:p/>

</doc>

http://example.com/ns/abc es el nombre largo del espacio de nombres y x es el prefijo de Qname. Unprefijo de Qname resulta de utilidad como abreviatura del espacio de nombres de cada referencia deelemento.

El elemento p está calificado por el espacio de nombres http://example.com/ns/abc.

El espacio de nombres predeterminado

Puede especificarse un espacio de nombres predeterminado para los elementos XML. El espacio denombres predeterminado se aplica al código actual y a los códigos descendientes. Cualquier código sincalificar del espacio de trabajo hereda el espacio de nombres predeterminado.<?xml version=’1.0’?>

<doc xmlns="http://example.com/ns/abc"><p/>

</doc>

En este caso, tanto el elemento doc como el elemento p se encuentran en el espacio de nombreshttp://example.com/ns/abc.

Espacios de nombres de atributos

Un atributo puede tener un espacio de nombres diferente del de su elemento asociado.

Elemento y atributo calificados:<dog xmlns:an="http://example.org/animals" xmlns:sz=”http://example.org/sizes”><an:breed sz:size=”Medium”>Mutt</an:breed></dog>

Los elementos y atributos heredan el espacio de nombres de forma diferente, cuando éste no se especificaexplícitamente. Los elementos sin calificar recogen el espacio de nombres predeterminado del ámbito enel que se encuentran. Los atributos sin calificar no tienen espacio de nombres.

Elemento y atributo sin calificar:<dog xmlns:an="http://example.org/animals"><breed size=”Medium”>Mutt</an:breed></dog>

En este ejemplo, el elemento breed tiene el espacio de nombres http://example.org/animals. Sinembargo, el atributo size no tiene ningún espacio de nombres asociado.

Para obtener más información acerca de los espacios de nombres de XML, consulte la recomendaciónW3C para espacios de nombres en XML, que se encuentra en el sitio de World Wide Web

Consortium(W3C) (http://www.w3.org) .

60 IBM i: OmniFind Text Search Server for DB2 for i

Page 67: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Prefijos de Qname reservados

Los siguientes prefijos de Qname están reservados y no deben utilizarse para calificar elementos oatributos definidos por usuario: xml, xs, xsi, fn, local.

Utilizar espacios de nombres en una búsquedaLos prefijos QName y los espacios de nombres de elemento predeterminados deben definirse en elprólogo de consulta @xmlxp del término de búsqueda.

Ejemplo de prólogo que correlaciona el espacio de nombres ns1 con el URI "http://miempresa.com"declare namespace ns1 = "http://miempresa.com";

Ejemplo de prólogo que especifica que todos los elementos sin calificar están calificados por el URI"http://miempresa.com":declare default element namespace "http://miempresa.com"

Si una consulta no declara ningún prefijo QName de espacio de nombres o espacio de nombres deelementos predeterminado, los espacios de nombres no se tienen en cuenta en la consulta. Un elemento oatributo se considera coincidente si existe en algún espacio de nombres.

Si se declara algún prefijo QName o espacio de nombres predeterminado, los nombres de elemento oatributo sólo se consideran coincidentes si existen en el espacio de nombres especificado.

La sintaxisdeclare default element namespace "”;

no podría utilizarse para indicar que los códigos sin calificar no se encuentran en ningún espacio denombres.

No es necesario que los prefijos QName utilizados en la serie de búsqueda XML coincidan con el prefijoQName utilizado en el documento XML. Las coincidencias se basan únicamente en el URI de nombrelargo.

Ejemplos:

Restringir la búsqueda al atributo attr del elemento test, estando el elemento test correlacionado con elespacio de nombres (namespace) "http://posample.org", y attr no se encuentra en ningún espacio denombre (namespace). Utilizar el namespace predeterminado para simplificar la sintaxis.CONTAINS(myxmlcol, ’@xmlxp:’’declare default element namespace “http://myexample.org”;/test[@attr > xs:date(“2005-01-01”)]’’’)

Restringir la búsqueda al atributo attr del elemento test, donde el elemento test tiene el namespace"http://myexample.org". Utilizar sintaxis de namespace explícito mediante el prefijo QName abc.CONTAINS(myxmlcol, ’@xmlxp:’’declare namespace abc = “http://myexample.org”;/abc:test[@attr < xs:date(“2009-01-01”)]’’’)

Restringir la búsqueda a los elementos hijos shipTo name y billTo name del elemento purchaseOrder, queestá correlacionado explícitamente con namespace "http://myexample.org" mediante el prefijo QName ns1.También se define un espacio de nombres predeterminado ("http://mastsample.org"), que se aplica ashipTo, name y billTo.CONTAINS(myxmlcol, ’@xmlxp:’’ declare default namespace "http://mastsample.org";declare namespace ns1 = "http://posample.org"; /ns1:purchaseOrder[shipTo/name = "Jane"and billTo/name = "Jason"]’’’)

Restringir la búsqueda al atributo name (definido explícitamente en el espacio de nombres"http://posample.org") del elemento shipTo (del espacio de nombres predeterminado

OmniFind Text Search Server 61

Page 68: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

"http://mastsample.org"), que es un elemento hijo del elemento purchaseOrder (definido explícitamenteen el espacio de nombres "http://posample.org"). El espacio de nombres predeterminado"http://mastsample.org" se aplica a los elementos shipTo, billTo y name.CONTAINS(myxmlcol, ’@xmlxp:’’ declare default namespace "http://mastsample.org";declare namespace ns1 = "http://posample.org"; /ns1:purchaseOrder/shipTo[@ns1:name =

"Jane" and billTo/name = "Jason"]’’’)

Ejemplo de búsqueda XMLv Cree una tabla XML_DOCUMENTS en el esquema XMLTEST para almacenar los documentos XML:

CREATE TABLE XMLTEST.XML_DOCUMENTS (ID INT, XML_DATA XML, PRIMARY KEY (ID));

v Cree un índice de búsqueda de texto denominado XML_INDEX sobre la columna XML:call SYSPROC.SYSTS_CREATE(’XMLTEST’, ’XML_INDEX’, ’XMLTEST.XML_DOCUMENTS(XML_DATA)’, ’’);

v Inserte algunos documentos XML:INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(1,

’<BOOK publication_date="2009-01-01">’ ||’ <TITLE> OmniFind Text Search Server for DB2 </TITLE>’ ||’ <ID_NUMBER> 1 ></ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector las prestaciones de OmniFind

for DB2 for IBM i </ABSTRACT>’ ||’ </CHAPTER>’||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Crear un índice de búsqueda de texto </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo crear un índice de búsqueda de texto </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(2,

’<BOOK publication_date="2010-02-01">’ ||’ <TITLE> Utilizar el tipo de datos XML para DB2 for IBM i </TITLE>’ ||’ <ID_NUMBER> 2 ></ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector el tipo de datos XML de DB2 </ABSTRACT>’ ||’ </CHAPTER> ’ ||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Insertar datos XML en una tabla de DB2 </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo insertar datos XML en una tabla de DB2 </ABSTRACT>’ ||’ </CHAPTER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 3 </NUMBER>’ ||’ <TITLE> Buscar datos XML </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo consultar datos de columnas XML

mediante las UDFS CONTAINS y SCORE </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(3,

’<BOOK xmlns="http://www.ibm.com/digital_media_library"’ ||’ publication_date="2010-02-01">’ ||’ <TITLE> Utilizar espacios de nombres con OmniFind Text Search Server for DB2 for IBM i </TITLE>’ ||’ <ID_NUMBER> 2 </ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector los espacios de nombres XML </ABSTRACT>’ ||

62 IBM i: OmniFind Text Search Server for DB2 for i

Page 69: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

’ </CHAPTER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Utilizar espacios de nombres predeterminados </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo utilizar un espacio de nombres en una búsqueda XML </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

v Actualice el índice:CALL SYSPROC.SYSTS_UPDATE(’XMLTEST’, ’XML_INDEX’, ’’);

Consultas de ejemplo

Ejemplo 1:

Buscar todos los documentos que tienen un elemento raíz BOOK con un descendiente directo TITLE quecontiene DB2.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’/BOOK/TITLE[. contains("DB2")]’’ ’) = 1;

Dado que no se ha especificado un prólogo de espacio de nombres en el término de búsqueda, no setiene en cuenta ningún espacio de nombres para la búsqueda.

Tabla 17. Resultado

ID

1

2

3

Ejemplo 2:

Buscar todos los documentos que tienen un elemento raíz BOOK con un descendiente directo TITLE quecontiene DB2. Utilizar un espacio de nombres de elemento predeterminado para indicar que BOOK y TITLEdeben estar en el espacio de nombres "http://www.ibm.com/digital_media_library”.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace"http://www.ibm.com/digital_media_library";/BOOK/TITLE[. contains("DB2")]’’ ’) = 1;

Tabla 18. Resultado

ID

3

Ejemplo 3:

Buscar todos los documentos que tienen un elemento raíz BOOK que tiene un atributo publication_dateposterior a "2010-01-01" y un elemento hijo TITLE que contiene DB2. Restringir la búsqueda para que loscódigos BOOK y TITLE no deban existir en ningún espacio de nombres.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace "";/BOOK[@publication_date > xs:date("2010-01-01")]/TITLE[. contains("DB2")]’’ ’) = 1;

OmniFind Text Search Server 63

Page 70: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 19. Resultado

ID

2

Ejemplo 4:

Buscar todos los documentos con un elemento raíz BOOK (que no esté en ningún espacio de nombres) quetengan un descendiente directo CHAPTER (tampoco en un espacio de nombres) que contenga informaciónacerca de la inserción de datos en una tabla XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace "";/BOOK/CHAPTER[. contains("insertar datos XML en una tabla")]’’ ’) = 1;

Nota:

v El texto contenido en CHAPTER incluye el texto contenido en los elementos ABSTRACT y TITLE que sondescendientes de CHAPTER.

v La serie de búsqueda no distingue entre mayúsculas y minúsculas y se tienen en cuenta las varianteslingüísticas de las palabras de búsqueda.

Tabla 20. Resultado

ID

2

Ejemplo 5:

Buscar todos los documentos con un elemento raíz BOOK (en el espacio de nombres “http://www.ibm.com/digital_media_library”) que tengan un descendiente directo CHAPTER (también en el espacio de nombres“http://www.ibm.com/digital_media_library”). CHAPTER debe tener un descendiente directo NUMBER (en elespacio de nombres “http://www.ibm.com/digital_media_library") con el valor 1, y también contenerinformación de texto acerca de la búsqueda en un espacio de nombres XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare namespace ns1 = "http://www.ibm.com/digital_media_library";/ns1:BOOK/ns1:CHAPTER[. contains("búsqueda XML mediante un espacio de nombres") and NUMBER = 1]’’ ’) = 1;

El documento #3 es el único con códigos en el espacio de nombres correcto, pero sólo tiene coincidenciasde palabras clave en un capítulo con el valor de número 2 (no 1).

No se devuelve ninguna fila.

Tabla 21. Resultado

ID

Ejemplo 6:

Buscar todos los documentos con un elemento raíz BOOK (en el espacio de nombres “http://www.ibm.com/digital_media_library”) que tengan un descendiente directo CHAPTER (en el espacio de nombres“http://www.ibm.com/digital_media_library”). CHAPTER debe tener un descendiente directo NUMBER (en elespacio de nombres “http://www.ibm.com/digital_media_library”) con el valor 1. BOOK debe tener un

64 IBM i: OmniFind Text Search Server for DB2 for i

Page 71: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

descendiente CHAPTER (no necesariamente con un descendiente NUMBER) que contenga información de textoacerca de la búsqueda en un espacio de nombres XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare namespace ns1 = "http://www.ibm.com/digital_media_library";/ns1:BOOK[ns1:CHAPTER contains("búsqueda XML mediante un espacio de nombres")]/ns1:CHAPTER[ns1:NUMBER = 1]’’ ’) = 1;

El documento 3 tiene un elemento CHAPTER que coincide con los criterios de CONTAINS, y también unelemento CHAPTER con un descendienteNUMBER que tiene el valor 1. Por tanto, el documento 3 coincide conesta consulta.

Tabla 22. Resultado

ID

3

Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.

Ejemplo de búsqueda XMLEste ejemplo incluye una tabla de documentos XML, un índice de búsqueda de texto sobre una columnaXML de la tabla y seis búsquedas de texto SQL que utilizan CONTAINS.

Nota: Al utilizar los ejemplos de código, acepta los términos del apartado “Información sobre licencia decódigo y exención de responsabilidad” en la página 156.v Cree una tabla XML_DOCUMENTS en el esquema XMLTEST para almacenar los documentos XML:

CREATE TABLE XMLTEST.XML_DOCUMENTS (ID INT, XML_DATA XML, PRIMARY KEY (ID));

v Cree un índice de búsqueda de texto denominado XML_INDEX sobre la columna XML:call SYSPROC.SYSTS_CREATE(’XMLTEST’, ’XML_INDEX’, ’XMLTEST.XML_DOCUMENTS(XML_DATA)’, ’’);

v Inserte algunos documentos XML:INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(1,

’<BOOK publication_date="2009-01-01">’ ||’ <TITLE> OmniFind Text Search Server for DB2 </TITLE>’ ||’ <ID_NUMBER> 1 ></ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector las prestaciones de OmniFind

for DB2 for IBM i </ABSTRACT>’ ||’ </CHAPTER>’||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Crear un índice de búsqueda de texto </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo crear un índice de búsqueda de texto </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

OmniFind Text Search Server 65

Page 72: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(2,

’<BOOK publication_date="2010-02-01">’ ||’ <TITLE> Utilizar el tipo de datos XML para DB2 for IBM i </TITLE>’ ||’ <ID_NUMBER> 2 ></ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector el tipo de datos XML de DB2 </ABSTRACT>’ ||’ </CHAPTER> ’ ||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Insertar datos XML en una tabla de DB2 </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo insertar datos XML en una tabla de DB2 </ABSTRACT>’ ||’ </CHAPTER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 3 </NUMBER>’ ||’ <TITLE> Buscar datos XML </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo consultar datos de columnas XML

mediante las UDFS CONTAINS y SCORE </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

INSERT INTO XMLTEST.XML_DOCUMENTS (ID, XML_DATA)VALUES(3,

’<BOOK xmlns="http://www.ibm.com/digital_media_library"’ ||’ publication_date="2010-02-01">’ ||’ <TITLE> Utilizar espacios de nombres con OmniFind Text Search Server for DB2 for IBM i </TITLE>’ ||’ <ID_NUMBER> 2 </ID_NUMBER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 1 </NUMBER>’ ||’ <TITLE> Introducción </TITLE>’ ||’ <ABSTRACT> Este capítulo presentará al lector los espacios de nombres XML </ABSTRACT>’ ||’ </CHAPTER>’ ||’ <CHAPTER>’ ||’ <NUMBER> 2 </NUMBER>’ ||’ <TITLE> Utilizar espacios de nombres predeterminados </TITLE>’ ||’ <ABSTRACT> Este capítulo describirá cómo utilizar un espacio de nombres en una búsqueda XML </ABSTRACT>’ ||’ </CHAPTER>’ ||’</BOOK>’);

v Actualice el índice:CALL SYSPROC.SYSTS_UPDATE(’XMLTEST’, ’XML_INDEX’, ’’);

Consultas de ejemplo

Búsqueda 1:

Buscar todos los documentos que tienen un elemento raíz BOOK con un descendiente directo TITLE quecontiene DB2.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’/BOOK/TITLE[. contains("DB2")]’’ ’) = 1;

Dado que no se ha especificado un prólogo de espacio de nombres en el término de búsqueda, no setiene en cuenta ningún espacio de nombres para la búsqueda.

Tabla 23. Resultado

ID

1

2

3

66 IBM i: OmniFind Text Search Server for DB2 for i

Page 73: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Búsqueda 2:

Buscar todos los documentos que tienen un elemento raíz BOOK con un descendiente directo TITLE quecontiene DB2. Utilizar un espacio de nombres de elemento predeterminado para indicar que BOOK y TITLEdeben estar en el espacio de nombres "http://www.ibm.com/digital_media_library”.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace"http://www.ibm.com/digital_media_library";/BOOK/TITLE[. contains("DB2")]’’ ’) = 1;

Tabla 24. Resultado

ID

3

Búsqueda 3:

Buscar todos los documentos que tienen un elemento raíz BOOK que tiene un atributo publication_dateposterior a "2010-01-01" y un elemento hijo TITLE que contiene DB2. Restringir la búsqueda para que loscódigos BOOK y TITLE no deban existir en ningún espacio de nombres.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace "";/BOOK[@publication_date > xs:date("2010-01-01")]/TITLE[. contains("DB2")]’’ ’) = 1;

Tabla 25. Resultado

ID

2

Búsqueda 4:

Buscar todos los documentos con un elemento raíz BOOK (que no esté en ningún espacio de nombres) quetengan un descendiente directo CHAPTER (tampoco en un espacio de nombres) que contenga informaciónacerca de la inserción de datos en una tabla XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare default element namespace "";/BOOK/CHAPTER[. contains("insertar datos XML en una tabla")]’’ ’) = 1;

Nota:

v El texto contenido en CHAPTER incluye el texto contenido en los elementos ABSTRACT y TITLE que sondescendientes de CHAPTER.

v La serie de búsqueda no distingue entre mayúsculas y minúsculas y se tienen en cuenta las varianteslingüísticas de las palabras de búsqueda.

Tabla 26. Resultado

ID

2

Búsqueda 5:

Buscar todos los documentos con un elemento raíz BOOK (en el espacio de nombres “http://www.ibm.com/digital_media_library”) que tengan un descendiente directo CHAPTER (también en el espacio de nombres

OmniFind Text Search Server 67

Page 74: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“http://www.ibm.com/digital_media_library”). CHAPTER debe tener un descendiente directo NUMBER (en elespacio de nombres “http://www.ibm.com/digital_media_library") con el valor 1, y también contenerinformación de texto acerca de la búsqueda en un espacio de nombres XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare namespace ns1 = "http://www.ibm.com/digital_media_library";/ns1:BOOK/ns1:CHAPTER[. contains("búsqueda XML mediante un espacio de nombres") and NUMBER = 1]’’ ’) = 1;

El documento #3 es el único con códigos en el espacio de nombres correcto, pero sólo tiene coincidenciasde palabras clave en un capítulo con el valor de número 2 (no 1).

No se devuelve ninguna fila.

Tabla 27. Resultado

ID

Búsqueda 6:

Buscar todos los documentos con un elemento raíz BOOK (en el espacio de nombres “http://www.ibm.com/digital_media_library”) que tengan un descendiente directo CHAPTER (en el espacio de nombres“http://www.ibm.com/digital_media_library”). CHAPTER debe tener un descendiente directo NUMBER (en elespacio de nombres “http://www.ibm.com/digital_media_library”) con el valor 1. BOOK debe tener undescendiente CHAPTER (no necesariamente con un descendiente NUMBER) que contenga información de textoacerca de la búsqueda en un espacio de nombres XML.SELECT IDFROM XMLTEST.XML_DOCUMENTSWHERE CONTAINS(XML_DATA, ’@xmlxp:’’declare namespace ns1 = "http://www.ibm.com/digital_media_library";/ns1:BOOK[ns1:CHAPTER contains("búsqueda XML mediante un espacio de nombres")]/ns1:CHAPTER[ns1:NUMBER = 1]’’ ’) = 1;

El documento 3 tiene un elemento CHAPTER que coincide con los criterios de CONTAINS, y también unelemento CHAPTER con un descendienteNUMBER que tiene el valor 1. Por tanto, el documento 3 coincide conesta consulta.

Tabla 28. Resultado

ID

3

Gramática de consultas de búsqueda XMLLa gramática de la búsqueda XML se basa en un subconjunto del lenguaje XPath, definido por lagramática EBNF (Extended Backus-Naur Form). El analizador de consultas rechazará las consultas que nose ajusten a la gramática soportada.

La gramática EBNF se ha simplificado en los siguientes aspectos:v No permitiendo nombres de vía de acceso absoluta en expresiones de predicado.v Reconociendo sólo un eje (código) y sólo hacia adelante.v Aplicando restricciones semánticas adicionales al uso del carácter comodín (consulte la sección anterior

dedicada al soporte de comodines en las expresiones de vía de acceso, del apartado “Búsqueda XML”en la página 53.

v Exigiendo la especificación de la declaración de espacio de nombres en la serie de búsqueda antes decualquier utilización, implícita o explícita, del espacio de nombres. Si no se incluye la declaración deespacio de nombres, los espacios de nombres no se tienen en cuenta en la búsqueda.

68 IBM i: OmniFind Text Search Server for DB2 for i

Page 75: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v Las expresiones de vía de acceso relativa deben tener un nombre de atributo o código incluido en laexpresión. La consulta ‘/' para seleccionar el nodo raíz y ‘//' para seleccionar todos los nodos no sonexpresiones válidas.

La tabla siguiente muestra la gramática soportada en la notación EBNF.

Tabla 29. Gramática de consultas soportada en la notación EBNF

Símbolo Producción

XMLQuery ::= QueryPrefix NameSpaceDeclaration QueryString| QueryPrefix QueryString

QueryPrefix ::= @xmlxp:

QueryString ::= "'" PathExpr "'"

PathExpr ::= RelativePathExpr| "/" RelativePathExpr?| "//" RelativePathExpr

RelativePathExpr ::= StepExpr ( ( "/" | "//" ) StepExpr )*

StepExpr ::= ( "." | AbbrevForwardStep ) Predicate?

AbbrevForwardStep ::= "@"? (QName | "*")

Predicate ::= "[" PredicateExpr "]"

PredicateExpr ::= Expr| PredicateExpr ( "and" | "or" )| "(" PredicateExpr ")"

Expr ::= ComparisonExpr | ContainmentExpr

ComparisonExpr ::= PathExpr ComparisonOp Literal

ComparisonOp ::= "=" | "<" | ">" | "!=" | "<=" | ">="

Literal ::= StringLiteral | NumericLiteral | DateLiteral

ContainmentExpr ::= PathExpr "contains" "(" StringLiteral ")"| PathExpr "excludes" "(" StringLiteral ")"

StringLiteral ::= "\"" [^"]* "\""| "'" [^']* "'"

DateLiteral ::= "xs:date(\"" xmlDate "\")"| "xs:dateTime(\"" xmlDateTime "\")"

xmlDate ::= aaaa"-"mm"-"dd

xmlDateTime ::= aaaa"-"mm"-"dd [T] hh":"mm":"ss"."uuuuuu

NameSpaceDeclaration ::= defaultNameSpace (NameSpacePrefixDeclaration)*

defaultNameSpace ::= “declare default element namespace“ StringLiteral “;”

NameSpacePrefixDeclaration ::= “declare namespace” NameSpacePrefix “=”StringLiteral “;”

NameSpacePrefix ::= [^”:]+

Administrar un OmniFind(r) Text Search Server for DB2(r) for iPuede administrar OmniFind Text Search Server for DB2 for i mediante las siguientes técnicas yherramientas.

OmniFind Text Search Server 69

Page 76: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Iniciar OmniFind Text Search Server for DB2 for iPuede iniciar OmniFind Text Search Server for DB2 for i llamando al procedimientoSYSPROC.SYSTS_START.

OMNIFIND inicia automáticamente el servidor de búsqueda de texto cuando es necesario, siempre ycuando el valor de SERVERSTATUS de QSYS2.SYSTEXTSERVERS sea 0. Esta política permite iniciarautomáticamente el servidor de búsqueda de texto cuando se inicia el sistema host. Sin embargo, puedeiniciar el servidor manualmente si es necesario.

Para iniciar el servidor:

CALL SYSPROC.SYSTS_START(idservidor)

Si la llamada es satisfactoria, el valor de SERVERSTATUS de QSYS2.SYSTEXTSERVERS se establece en 0después de llamar al procedimiento. Si el servidor es local, los trabajos siguientes estarán activos ensegundo plano:v QJVAEXEC QDBTS BCI 0.0 JVM-com.ibm.esv QJVAEXEC QDBTS BCI 0.0 PGM-textExtracv QJVAEXEC QDBTS BCI 0.0 PGM-textExtracv QJVAEXEC QDBTS BCI 0.0 PGM-textExtracv QJVAEXEC QDBTS BCI 0.0 PGM-textExtrac

donde QDBTS es el perfil de usuario de OmniFind creado durante la instalación del producto.

Puede que deban transcurrir unos minutos antes de que todos estos trabajos estén activos y el servidorde texto pueda utilizarse.Referencia relacionada:“SYSPROC.SYSTS_START” en la página 15Puede habilitar funciones de búsqueda de texto de DB2 llamando al procedimiento almacenadoSYSPROC.SYSTS_START.“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

Detener OmniFind Text Search Server for DB2 for iPuede detener OmniFind Text Search Server for DB2 for i manualmente mediante el script de conclusiónque se suministra.

Si ha instalado OmniFind Text Search Server for DB2 for i como servicio, el servidor de búsqueda detexto se detiene automáticamente cada vez que se concluye el sistema host. Sin embargo, puede detenerel servidor manualmente aunque haya instalado OmniFind Text Search Server for DB2 for i comoservicio.

Para detener OmniFind Text Search Server for DB2 for i:1. Indique en el catálogo SYSTEXTSERVER que el servidor se detiene llamando a

SYSPROC.SYSTS_STOP.v Para detener todos los servidores: CALL SYSPROC.SYSTS_STOP().v Para detener un servidor específico:

a. Consulte el catálogo de servidores para obtener el idservidor que desea detener:SELECT SERVERID,SERVERPORT,SERVERSTATUS,SERVERPATH

FROM QSYS2.SYSTEXTSERVERS

70 IBM i: OmniFind Text Search Server for DB2 for i

Page 77: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Nota: SERVERPATH identifica al servidor. SERVERSTATUS indica si el servidor está actualmenteactivo (0) o inactivo (1).

b. Llame a SYSPROC.SYSTS_STOP, especificando el idservidor numérico o el nombre de alias delservidor que desea detener.CALL SYSPROC.SYSTS_STOP(idservidor).

2. Indique en el catálogo SYSTEXTSERVER que el servidor se detiene llamando aSYSPROC.SYSTS_SHUTDOWN. Además de establecer SERVERSTATUS en inactivo(1), esteprocedimiento también finalizará los trabajos de servidor de búsqueda de texto en el sistema host.v Para concluir todos los servidores: CALL SYSPROC.SYSTS_SHUTDOWN().v Para concluir un servidor específico:

a. Consulte el catálogo de servidores para obtener el idservidor que desea concluir:SELECT SERVERID,SERVERPORT,SERVERSTATUS,SERVERPATH

FROM QSYS2.SYSTEXTSERVERS

Nota: SERVERPATH identifica al servidor. SERVERSTATUS indica si el servidor está actualmenteactivo (0) o inactivo (1).

b. Llame a SYSPROC.SYSTS_SHUTDOWN, especificando el idservidor numérico o el nombre dealias del servidor que desea concluir.CALL SYSPROC.SYSTS_SHUTDOWN(idservidor).

3. (Opcional) Detenga el servidor en sí llamando al script de conclusión. Al detener el servidor, sedetienen todos los trabajos del servidor de búsqueda de texto del sistema host. Detenga el servidor enel entorno Qshell.Para concluir el servidor local, especifique el mandato siguiente en la línea de mandatos:QSH CMD(’cd /QOpenSys/QIBM/ProdData/TextSearch/server1/bin; shutdown.sh’) .Si el servidor que debe concluirse no es el servidor local predeterminado creado por el proceso deinstalación, debe obtener el valor correcto de SERVERPATH de QSYS2.SYSTEXTSERVERS. Utilice esevalor de SERVERPATH en lugar de /QOpenSys/QIBM/ProdData/TextSearch/server1/bin.Si detiene el servidor mediante el script de conclusión, el catálogo SERVERSTATUS no cambia aestado Inactivo (1). La próxima vez que se llame a los procedimientos almacenados SYSTS_CREATE,SYSTS_UPDATE y SYSTS_DROP, o cuando se invoque una función incorporada CONTAINS o SCOREcomo parte de una consulta SQL, el servidor se iniciará automáticamente.

Referencia relacionada:“SYSPROC.SYSTS_STOP” en la página 17Puede llamar al procedimiento almacenado SYSPROC.SYSTS_STOP para detener las funciones debúsqueda de texto de DB2. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido).“SYSPROC.SYSTS_SHUTDOWN” en la página 39Puede llamar al procedimiento almacenado SYSPROC.SYSTS_SHUTDOWN para concluir las funciones debúsqueda de texto de DB2®. Este procedimiento almacenado establece el valor SERVERSTATUS delcatálogo QSYS2.SYSTEXTSERVERS en 1 (detenido) y también finaliza los trabajos del servidor debúsqueda de texto del sistema host.“Tabla de administración QSYS2.SYSTEXTSERVERS” en la página 115Puede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

Salvar y restaurar índices de búsqueda de textoPuede salvar y restaurar los índices de búsqueda de texto con o sin datos.

Salvar y restaurar un índice de búsqueda de texto sin datosPuede salvar y restaurar una estructura de índice de búsqueda de texto sin los datos de índice. El procesode salvar y restaurar puede realizarse mediante los mandatos CL SAVOBJ y SAVLIB.

OmniFind Text Search Server 71

Page 78: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Cuando se crea un índice de búsqueda de texto mediante SYSTS_CREATE, se crea una vista de DB2utilizando el esquema y el nombre del índice como nombre de la vista. La vista actúa como mecanismopara salvar y restaurar la estructura del índice.

El usuario puede salvar la vista mediante los mismos métodos utilizados para salvar tablas y vistas debase de datos. (Consulte los mandatos CL SAVOBJ o SAVLIB). Al salvar la vista automáticamente, sesalva la información adicional necesaria para volver a crear el índice durante la restauración.

La vista puede restaurarse mediante los mandatos CL RSTOBJ o RSTLIB. DB2 for i reconoce que la vistarepresenta un índice de búsqueda de texto y vuelve a crear el índice. Una vez recreada la estructura delíndice, se someterá una actualización a un trabajo en segundo plano para volver a llenar los datos delíndice.

Durante el proceso de restauración deben tenerse en cuenta consideraciones adicionales:1. Si el servidor de búsqueda de texto no puede iniciarse o un producto necesario no está instalado en el

sistema, la restauración fallará. Consulte los Requisitos de software para obtener una lista de losproductos necesarios.

2. Si el índice de búsqueda de texto existe en el sistema, se realizan las acciones siguientes.a. Si la información de índice existente coincide exactamente con el índice que se restaura, la

restauración será satisfactoria. El índice no se reconstruye.b. Si la información de índice existente no coincide con el índice que se restaura y no puede

modificarse para que coincida sin volver a crear el índice, la restauración fallará.c. Si la información de índice existente no coincide con el índice que se restaura, pero puede

modificarse para que coincida mediante SYSTS_ALTER, el índice existente se modificará para quecoincida con el índice que se ha salvado. El índice no se reconstruye.

3. El índice se restaura para utilizar el mismo servidor de búsqueda de texto utilizado en el momento derealizar la operación de salvar. Si el servidor utilizado cuando se realizó la operación de salvar no estádefinido, se seleccionará un servidor disponible en ese momento. Si el servidor salvado está definidopero no está disponible, la restauración fallará.

4. Si el índice de búsqueda de texto no puede crearse por alguna otra razón, como por ejemplo unacolumna incompatible en la tabla base, la restauración fallará.

5. El nombre de la tabla intermedia en QSYS2, los nombres de desencadenantes que se añaden a la tablabase y el nombre de colección en el servidor de búsqueda de texto pueden cambiar, ya que los generael sistema.

6. Los sinónimos añadidos al diccionario de sinónimos del índice de búsqueda de texto no se conservan.7. Si el índice existe en los catálogos del sistema durante la restauración y la vista no existe actualmente

en el sistema, sólo se restaura la vista. La tabla intermedia, la colección del servidor de búsqueda detexto y los desencadenantes de la tabla base no se crean.En este caso, se presupone que el índice de búsqueda de texto forma parte de una restauración mayoren la que el usuario ha salvado explícitamente las partes individuales del índice, y ahora se restaurantodas ellas (como por ejemplo al restaurar todo el sistema).Todas las partes necesarias del índice deben restaurarse para que funcione el índice. Esresponsabilidad del usuario asegurarse de que todas las partes del índice estén sincronizadas.

Los índices de búsqueda de texto están soportados por el mandato Restaurar objetos diferidos(RSTDFROBJ). Es aconsejable utilizar el parámetro DFRID en los mandatos CL RSTOBJ y RSTLIB. Esteparámetro permite restaurar índices de búsqueda de texto mediante el mandato RSTDFROBJ después decorregir condiciones habituales que impiden la creación del índice.

Son ejemplos de condiciones que provocan el diferimiento del índice:v Un producto necesario que no está instalado.v Un servidor de búsqueda de texto no está disponible o definido.

72 IBM i: OmniFind Text Search Server for DB2 for i

Page 79: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v La tabla base no existía.Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.“SYSPROC.SYSTS_ALTER” en la página 28Puede llamar al procedimiento almacenado SYSPROC.SYSTS_ALTER para modificar los atributos de uníndice creado por SYSPROC.SYSTS_CREATE. Sólo se cambiarán los atributos especificados explícitamenteen este procedimiento. Todos los demás atributos del índice permanecerán sin cambios.Información relacionada:Salvar objeto (SAVOBJ)Salvar biblioteca (SAVLIB)Restaurar objeto (RSTOBJ)Restaurar biblioteca (RSTLIB)Restaurar objetos diferidos (RSTDFROBJ)

Salvar y restaurar un índice de búsqueda de texto con datosSalvar y restaurar un índice de búsqueda de texto con datos es una operación más compleja que hacerlosin datos.

Debe salvar los objetos siguientes:v El índice de búsqueda de texto (almacenado en el sistema de archivos integrado).v La tabla intermedia utilizada como archivo de registro que realiza el seguimiento de los cambios de

registro de la tabla base (sobre la cual se ha creado el índice). La tabla intermedia se encuentra en labiblioteca QSYS2. Su nombre empieza por QDBTS, por ejemplo, QDBTS00001.

v La vista, que es el objeto de base de datos que representa el índice de texto. La vista tiene el mismonombre que el índice de texto.

v La tabla base a partir de la cual se ha construido el índice.v Los catálogos SQL que almacenan la información destinada a realizar el seguimiento del índice.

Para salvar los índices de búsqueda de texto, siga estos pasos:1. Recomendado: actualice los índices realizando primero operaciones de actualización (SYSTS_UPDATE)

para los índices de búsqueda de texto.2. Salve la tabla base y la vista mediante técnicas de salvación estándar, como por ejemplo el mandato

SAVOBJ.3. Salve las tablas intermedias que se encuentran en QSYS2 mediante técnicas de salvación estándar. Por

ejemplo, SAVOBJ LIB(QSYS2) OBJ(QDBTS*).4. Salve los catálogos de índice de búsqueda de texto en QSYS2:

Todos los nombres de catálogo empiezan por SYSTXT, por ejemplo, SYSTXTSRVR. Al igual que losdemás catálogos SQL de QSYS2, es responsabilidad del usuario asegurarse de que se haya salvado yesté disponible una copia de seguridad.Esta copia de seguridad puede realizarse de dos maneras:a. Puede salvarse toda la biblioteca como parte del mandato SAVLIB, especificando *ALLUSR o *IBM

en el parámetro LIB.b. Pueden salvarse los catálogos de búsqueda de texto específicos mediante el mandato SAVOBJ,

especificando LIB(QSYS2) y OBJ((SYSTXT*)).5. Salve la información del índice de búsqueda de texto en el sistema de archivos integrado. Esta

información incluye todo el contenido del directorio config bajo la vía de acceso del servidor de texto.

OmniFind Text Search Server 73

Page 80: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

La vía de acceso del servidor de texto puede determinarse consultando la columna SERVERPATH delcatálogo SYSTXTSRVR del servidor en cuestión. La vía de acceso del servidor contiene un directorioañadido al final, que debe sustituirse por el directorio config.Una técnica habitual de salvar es utilizar el mandato SAV, aunque funcionará cualquier tipo decompresión de salvado.

Nota: Esta información de salvar sólo es aplicable a los servidores de texto ejecutados en IBM i.

Ejemplo:

Supongamos que desea salvar todos los índices de texto asociados con el servidor de textopredeterminado creado por OMNIFIND. Tiene una tabla QGPL/MYDOCS con el índice de textoQGPL/MYDOCIX construido a partir de ella. En este ejemplo, los soportes de salvar son archivos.

Siga estos pasos:1. Salve todas las tablas intermedias y los catálogos de OMNIFIND de QSYS2:

SAVOBJ OBJ(QDBTS* SYSTXT*) LIB(QSYS2) DEV(*SAVF) SAVF(QGPL/SAVFQSYS2)

2. Salve la tabla base y la vista:SAVOBJ OBJ(MYDOCS MYDOCIX) LIB(QGPL) DEV(*SAVF) SAVF(QGPL/SAVFMYFILE)

3. Mediante SQL, obtenga el nombre de vía de acceso del servidor de texto. En este ejemplo, serverid =2:SELECT SERVERPATH FROM systxtsrvr WHERE serverid=2

El valor de SERVERPATH devuelto es /QOpenSys/QIBM/ProdData/TextSearch/server1/bin/.

Nota: Compruebe que está consultando el servidor correcto.4. Especifique config en lugar de bin/ y salve los índices de texto:

SAV DEV(’/QSYS.LIB/QGPL.LIB/SAVIFS.FILE’) OBJ((’/QOpenSys/QIBM/ProdData/TextSearch/server1/config’))

Los índices de texto se salvarán ahora en los archivos de salvar QGPL/SAVFMYFILE, QGPL/SAVFQSYS2y QGPL/SAVIFS.

La operación de restaurar los índices de texto debe realizarse en el mismo orden que la operación desalvar. Los catálogos de QSYS2 DEBEN restaurarse en primer lugar.Referencia relacionada:“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.Información relacionada:Salvar objeto (SAVOBJ)Salvar biblioteca (SAVLIB)

Determinación de problemasPuede utilizar los mensajes del sistema y de rastreo registrados para determinar el origen de losproblemas que puedan surgir.

El registro del servidor OmniFind Text Search Server for DB2 for i se encuentra en el directorio<DIRECTORIO_INICIAL_INSTALACIÓN>/log. El registro de servidor predeterminado creado durante lainstalación se encuentra en el directorio /QOpenSys/QIBM/ProdData/TextSearch/server1/log.

74 IBM i: OmniFind Text Search Server for DB2 for i

Page 81: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Por omisión, el registro cronológico de rastreo está desactivado, y el nivel de registro del sistema estáestablecido en informativo. Puede utilizar la herramienta de configuración para cambiar las opciones derastreo y nivel de registro.

Los archivos de registro del servidor se rotan por tamaño. Se almacenan las cinco copias más recientes delos archivos de registro del servidor que no superan los 8 MB. Puede visualizar y guardar los registrosdel servidor mediante el script que se suministra.

En IBM i o en un servidor Linux, el script es logformatter.sh. En un servidor Windows, el script eslogformatter.bat.

Opciones

El script tiene las opciones siguientes.

-f logfileEspecifica el archivo de registro del servidor que desea formatear.

-l localeEspecifica el entorno local que debe utilizarse al grabar los mensajes reformateados. Por ejemplo,especifique en_US para el inglés o ja_JP para el japonés. Este valor es opcional. El valorpredeterminado es en_US.

-o outputfileEspecifica el archivo de salida en el que deben grabarse los mensajes de registro reformateadosmediante la codificación UTF-8. Este valor es opcional. Si no especifica esta opción, se utilizará unarchivo de salida estándar.

-? Imprime el mensaje de ayuda. Este valor es opcional.

-v Especifica la modalidad de visualización de los mensajes de depuración. Este valor es opcional.

Visualizar y guardar registros del servidorPuede utilizar los scripts que se suministran para visualizar y guardar los registros del servidor. Estosregistros pueden ayudar a determinar el origen de los problemas.

Para visualizar y guardar un registro del servidor:1. Para visualizar el registro del servidor, ejecute uno de los mandatos siguientes:

Opción Descripción

En IBM i (dentro del entorno QSH) bin/logformatter.sh -flog/System.0.log

En un servidor Linux bin/logformatter.sh -flog/System.0.log

En un servidor Windows bin/logformatter.bat -flog/System.0.log

2. Para guardar el registro del servidor en un archivo para poder leerlo en un editor de archivos, ejecuteuno de los mandatos siguientes:

Opción Descripción

En IBM i (dentro del entorno QSH) bin/logformatter.sh-f log/System.0.log–o <nombre de archivo de salida>

En un servidor Linux bin/logformatter.sh-f log/System.0.log–o <nombre de archivo de salida>

OmniFind Text Search Server 75

Page 82: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Opción Descripción

En un servidor Windows bin/logformatter.bat-f log/System.0.log–o <nombre de archivo de salida>

Herramientas de administraciónOMNIFIND suministra herramientas que pueden utilizarse para tareas habituales. Estas tareas incluyen laconfiguración y administración de un servidor de búsqueda de texto adicional y la adición de undiccionario de sinónimos a una colección.

Estas herramientas son scripts de shell en lugar de mandatos CL. Pueden invocarse dentro del entorno descripts que se inicia mediante los mandatos CL Iniciar QSH (STRQSH) o QSH (QSH).

Estas herramientas no autentican ID de usuario. Sin embargo, sólo un usuario que tenga acceso válido alservidor de búsqueda de texto puede ejecutarlas.Información relacionada:Iniciar QSH (STRQSH)Iniciar QSH (QSH)

Herramienta de configuraciónLa herramienta de configuración se utiliza para personalizar valores de configuración después de instalarOmniFind Text Search Server for DB2 for i.

Para personalizar la mayoría de los valores de configuración, es necesario detener el servidor debúsqueda de texto antes de ejecutar la herramienta de configuración.

Sin embargo, mientras el servidor está en ejecución puede visualizar las opciones siguientes:v la señal de autenticación actualv el puerto del servidorv las propiedades actuales del sistema

La herramienta configServerAndDB2

La herramienta configServerAndDB2 (configServerAndDB2.sh) se encuentra en el directorio del sistemade archivos integrado /QOpenSys/QIBM/ProdData/TextSearch. Esta herramienta puede utilizarse para crearo modificar entradas del archivo de catálogo de DB2 SYSTEXTSERVERS.

También puede utilizarse para configurar la señal de autenticación o el número de puerto asociados conun servidor específico. La herramienta modifica o establece los valores de SERVERAUTHTOKEN ySERVERPORT en el archivo de catálogo de DB2 SYSTEXTSERVERS.

Si desea crear un servidor adicional que se ejecute localmente en el sistema, utilice la “HerramientaServerInstance” en la página 90.

La herramienta configServerAndDB2 (configServerAndDB2.sh) se invoca con cinco parámetros:1. El primer parámetro es generateToken o configureHTTPListener.2. El segundo parámetro es -serverPath.3. El tercer parámetro es la vía de acceso al nodo raíz del sistema de archivos integrado donde se

almacena la información relacionada con el servidor. Ejemplo: /QOpenSys/QIBM/ProdData/TextSearch/server2.

4. El cuarto y quinto parámetros varían en función del valor del primer parámetro.

76 IBM i: OmniFind Text Search Server for DB2 for i

Page 83: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v Si el primer parámetro es generateToken, el cuarto parámetro es -seed seguido de un entero (porejemplo, 1) como quinto parámetro.

v Si el primer parámetro es configureHTTPListener, el cuarto parámetro es -adminHTTPPort. El quintoparámetro es un valor entero que se utiliza como puerto de socket del servidor.

A continuación se muestran dos ejemplos:v STRQSH

cd /QOpenSys/QIBM/ProdData/TextSearchconfigServerAndDB2.sh generateToken -serverPath /QOpenSys/QIBM/ProdData/TextSearch/server2 -seed 1

v STRQSHcd /QOpenSys/QIBM/ProdData/TextSearchconfigServerAndDB2.sh configureHTTPListener -serverPath /QOpenSys/QIBM/ProdData/TextSearch/server2

-adminHTTPPort 9997

El script configTool

El script configTool.sh está disponible para cada servidor local. No es aconsejable utilizarlo paramodificar entradas de servidor. Puede utilizarlo para imprimir la información del servidor (como, porejemplo, printAll y printToken).

Tabla 30. Mandatos de ejecución de la herramienta de configuración

En IBM i:

configTool.sh<opción_mandato_obligatoria><argumentos_globales_obligatorios><argumentos_globales_opcionales><opciones_mandato_opcionales>

En un servidor Linux

configTool.sh<opción_mandato_obligatoria><argumentos_globales_obligatorios><argumentos_globales_opcionales><opciones_mandato_opcionales>

En un servidor Windows

configTool.bat<opción_mandato_obligatoria><argumentos_globales_obligatorios><argumentos_globales_opcionales><opciones_mandato_opcionales>

Opciones de mandato

La herramienta de configuración admite las siguientes opciones de mandato:

configureParamsEspecifica los parámetros del sistema que puede configurar. Puede configurar los parámetrossiguientes:

-configPathEspecifica la vía de acceso absoluta a la carpeta de configuración que contiene el archivoconfig.xml.

-adminHTTPPortEspecifica el número de puerto HTTP de administración. Si se produce un error, se devuelve elcódigo de error -3.

-logPathEspecifica la vía de acceso absoluta al directorio de registros.

OmniFind Text Search Server 77

Page 84: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

-temDirPathEspecifica la vía de acceso absoluta al directorio temporal.

-numberOfIndexersEspecifica el número de subsistemas de indexación de búsqueda de texto simultáneos.

-numberOfTokenizersEspecifica el número de subsistemas simultáneos utilizados para analizar la entrada a fin degenerar señales.

-maxDocumentSizeEspecifica el número máximo de caracteres que deben indexarse para un documento. Si seproduce un error, se devuelve el código de error -3.

-logLevelEspecifica el nivel de registro de los mensajes del sistema en el archivo de registro. El nivelpredeterminado es informativo. Las opciones adicionales son aviso y grave.

-maxHeapSizeInicia y detiene el tamaño de almacenamiento dinámico en un formato aceptado por la máquinavirtual Java. Si se produce un error, se devuelve el código de error -5.

printTokenImprime la señal de autenticación y la clave de cifrado actuales.

printAllImprime todos los valores actuales para las opciones que pueden configurarse con esta herramienta.

printAdminHTTPPortImprime el valor actual del puerto HTTP de administración.

generateTokenGenera la señal de autenticación.

Argumentos globales

-configPathEspecifica la vía de acceso absoluta a la carpeta de configuración que contiene el archivo config.xml.Este argumento global es obligatorio.

-localeEspecifica el valor de entorno local de cinco caracteres para la escritura de mensajes en el archivo derastreo. Si no especifica este valor, se utilizará el valor predeterminado, -en_US.

Ejemplo

En un servidor Linux, especifique el mandato siguiente para imprimir la señal de autenticación actual:configTool.sh printToken -configPath <vía_acceso> <argumentos_globales_opcionales>

Información relacionada:Iniciar QSH (QSH)

SYSPROC.SYSTS_REMOVEPuede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_REMOVE.

Autorización

El nombre de colección de los índices huérfanos posibles puede identificarse mediante la función de tabladefinida por usuario (UDTF) QDBTS_LISTINXSTS.

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:

78 IBM i: OmniFind Text Search Server for DB2 for i

Page 85: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

v Autoridad *JOBCTLv Utilización de la función especial de seguridad QIBM_DB_SQLADM

Sintaxis

>>-SYSPROC.SYSTS_REMOVE (nombre-colección) -><

Parámetro

nombre-colecciónEspecifica un literal de tipo serie que identifica el nombre de la colección que debe eliminarse.

Nota: Este procedimiento utiliza el script de shell adminTool.sh para eliminar el directorio de colección.Para utilizar este script de shell, el servidor debe encontrarse en funcionamiento. Si el servidor no se hainiciado, este procedimiento devolverá un mensaje de error.

SQL para SYSTS_REMOVECREATE PROCEDURE SYSPROC.SYSTS_REMOVE(

IN COLLECTIONNAME VARCHAR(255) CCSID 1208)EXTERNAL NAME QDBTSLIB.DSN5RMCOLLDYNAMIC RESULT SETS 0LANGUAGE C++PARAMETER STYLE SQLPROGRAM TYPE MAINCOMMIT ON RETURN NOINHERIT SPECIAL REGISTERS;

Ejemplosv Para eliminar un índice huérfano con el nombre de colección 0_65_2815_2008_06_02_11_58_22_901726

del grupo de ASP *SYSBASE, especifique el mandato siguiente en cualquier interfaz SQL:CALL SYSPROC.SYSTS_REMOVE(’0_65_2815_2008_06_02_11_58_22_901726’)

El procedimiento almacenado SYSTS_REMOVE comprueba si la información de índice se encuentra enla tabla de catálogo QSYS2.SYSTEXTINDEXES. Si es verdadero (true), se devuelve el mensaje de errorDSX_INDEX_EXIST; si no es así, el procedimiento busca en el directorio config/collections delservidor 65.Si la colección no existe, se devolverá el mensaje de error DSX_COLLECTION_NOT_FOUND; si lacolección existe, el procedimiento llamará a adminTool.sh para eliminar la colección.A continuación, el procedimiento comprobará de nuevo el directorio para ver si la colección se haeliminado. Si la colección no se ha eliminado, se devolverá al usuario el mensaje de errorDSX_REMOVE_COLLECTION_FAILED.

Nota: Cuando la colección del servidor de búsqueda de texto se encuentra en un grupo de ASPindependientes, la hebra que llama al procedimiento almacenado SYSTS_REMOVE debe ejecutarse enel espacio de nombres de la ASP independiente. Utilice el mandato Establecer grupo de agrupacionesde almacenamiento auxiliar (SETASPGRP).

v Para eliminar un índice huérfano con el nombre de colección 33_7_26_2008_06_18_21_28_39_407824 dela ASP independiente iaspXXX, puede utilizar los mandatos siguientes:CL:SETASPGRP(iaspXXX)

SQL:CALL SYSPROC.SYSTS_REMOVE(’ 33_7_26_2008_06_18_21_28_39_407824’)

Nota: Si utiliza System i Navigator, pulse con el botón derecho del ratón el nombre de base de datos dela ASP independiente y ejecute los scripts SQL.

OmniFind Text Search Server 79

Page 86: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.“Buscar índices huérfanos y ausentes” en la página 87Puede buscar índices huérfanos y ausentes mediante una función de tabla definida por usuario (UDTF)SQL denominada QDBTS_LISTINXSTS.

SYSPROC.SYSTS_REPRIMEINDEXPuede ajustar (reprime) el índice e iniciar una actualización inicial mediante el procedimiento almacenadoSYSPROC.SYSTS_REPRIMEINDEX. Utilice este procedimiento almacenado cuando desee restaurar datosdesde la tabla base.

Si se restauran los datos de la tabla base, el contenido actualizado de la tabla base no puede indexarsemientras se llama al procedimiento almacenado SYSTS_UPDATE. En este caso, puede llamarse alprocedimiento almacenado SYSPROC.SYSTS_REPRIMEINDEX para ajustar el índice.

Nota: Si se ha creado un diccionario de sinónimos para el índice de búsqueda de texto, este procesoelimina el diccionario.

Sintaxis>>-SYSPROC.SYSTS_REPRIMEINDEX(indexSchema, indexName, options) -><

El calificador de esquema es SYSPROC.

Parámetros

indexSchemaIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante.

El tipo de datos de este parámetro es VARCHAR(128).

indexNameIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifica de forma exclusiva el índice de texto completo en elsubsistema DB2. Debe especificar un valor que no sea nulo para este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).

optionsSerie de caracteres que especifica opciones que pueden añadirse en el futuro a este procedimientoalmacenado.

Importante: Debe especificar un valor no nulo para el parámetro options. De lo contrario, puedengenerarse errores. Observe el ejemplo siguiente para saber cómo especificar el parámetro opciones.

SQL para SYSTS_REPRIMEINDEXCREATE PROCEDURE SYSPROC.SYSTS_REPRIMEINDEX(

IN INDEXSCHEMA VARCHAR(128) CCSID 1208,IN INDEXNAME VARCHAR(128) CCSID 1208,IN OPTIONS VARCHAR(32000) CCSID 1208)

EXTERNAL NAME QDBTSLIB.DSN5RPMIDXDYNAMIC RESULT SETS 0LANGUAGE CPARAMETER STYLE SQL

80 IBM i: OmniFind Text Search Server for DB2 for i

Page 87: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

MODIFIES SQL DATAPROGRAM TYPE MAINCOMMIT ON RETURN NOINHERIT SPECIAL REGISTERS

Ejemplov Para ajustar (reprime) un índice desde cualquier interfaz SQL, especifique el mandato siguiente desde

cualquier interfaz de SQL:CALL SYSPROC.SYSTS_REPRIMEINDEX('indexSchema1’,’indexName1’,’’)

Referencia relacionada:“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.

SYSTS_CLEAR_INDEXESPuede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_CLEAR_INDEXES. Otra forma implícita es invocar SYSTS_START directamente, que intenta borraríndices huérfanos automáticamente.

Autorización

Los índices huérfanos posibles pueden identificarse mediante la función de tabla definida por usuario(UDTF) QDBTS_LISTINXSTS.

Los privilegios detentados por el ID de autorización de la sentencia deben incluir como mínimo uno delos siguientes:v Autoridad *JOBCTLv Utilización de la función especial de seguridad QIBM_DB_SQLADM

Sintaxis>>- SYSTS_CLEAR_INDEXES--(--+-----------+--)-----------------------------><

+-id_servidor--+’-nombre_alias-’

Parámetros

id_servidor o nombre_aliasEspecifica el identificador del servidor cuyos índices huérfanos deben borrarse. Un idservidor o unnombrealias de servidor es una serie de caracteres. Si no se proporciona ningún identificador, el valorpredeterminado es borrar los índices huérfanos de todos los servidores. La serie del identificadordebe ser un id_servidor válido que exista en la columna SERVERID o un nombre de alias de servidorválido que exista en la columna ALIASNAME de la tabla QSYS2.SYSTEXTSERVERS. Si elidentificador puede convertirse a un valor entero, se interpreta como idservidor. Si el identificador nopuede convertirse a un valor entero, se interpreta como nombrealias de servidor.

El tipo de datos de este parámetro es VARCHAR(128).

Ejemplov Borrar todos los índices huérfanos:

Call SYSPROC.SYSTS_CLEAR_INDEXES();

v Borrar los índices huérfanos de un servidor específico con el ID 50:Call SYSPROC.SYSTS_CLEAR_INDEXES(50);Call SYSPROC.SYSTS_CLEAR_INDEXES(’50’);

v Borrar los índices huérfanos de un servidor específico con el nombre de alias “Local_server”:

OmniFind Text Search Server 81

Page 88: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Call SYSPROC.SYSTS_CLEAR_INDEXES(’Local_server’);

v Borrar implícitamente índices huérfanos:CALL SYSPROC.SYSTS_START();CALL SYSPROC.SYSTS_START(50);

Nota: cuando la colección del servidor de búsqueda de texto se encuentra en un grupo de ASPindependientes, la hebra que llama al procedimiento almacenado SYSTS_CLEAR_INDEXES debeejecutarse en el espacio de nombres de la ASP independiente. Utilice el mandato Establecer grupo deagrupaciones de almacenamiento auxiliar (SETASPGRP).

Para eliminar un índice huérfano de una ASP independiente iaspXXX, puede utilizar los siguientesmandatos:

CL:SETASPGRP(isapXXX)SQL:CALL SYSPROC.SYSTS_CLEAR_INDEXES( )

Nota: si utiliza System i® Navigator, pulse con el botón derecho del ratón el nombre de base de datos dela ASP independiente y ejecute los scripts SQL.Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.“Buscar índices huérfanos y ausentes” en la página 87Puede buscar índices huérfanos y ausentes mediante una función de tabla definida por usuario (UDTF)SQL denominada QDBTS_LISTINXSTS.

SYSPROC.SYSTS_VALIDITYCHECKPuede comprobar la validez de elementos de índice mediante el procedimiento almacenado SQLSYSPROC.SYSTS_VALIDITYCHECK.

Sintaxis

Este procedimiento almacenado puede arreglar algunos elementos que no son válidos si se especifica elparámetro autoFix.

>>-SYSPROC.SYSTS_VALIDITYCHECK (indexSchema, indexName, autoFix) -><

El calificador de esquema es SYSPROC.

Parámetros

indexSchemaIdentifica el esquema del índice de búsqueda de texto. Si este parámetro es nulo, se utiliza el valordel registro especial CURRENT SCHEMA correspondiente al invocante.

El tipo de datos de este parámetro es VARCHAR(128).

indexNameIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto,junto con el esquema del índice, identifica de forma exclusiva el índice de texto completo en elsubsistema DB2. Debe especificar un valor que no sea nulo para este parámetro.

82 IBM i: OmniFind Text Search Server for DB2 for i

Page 89: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El tipo de datos de este parámetro es VARCHAR(128).

autoFixIdentifica si es necesario un arreglo automático. El valor de este parámetro sólo puede ser 0 o 1. Lossignificados de estos valores son los siguientes:

0 Sólo se comprueba la validez del índice.

1 Se comprueba la validez del índice y se arreglan los elementos que no son válidos.

Nota:

Si se especifican valores que no son 0 o 1, se consideran 0.

El tipo de datos de este parámetro es INTEGER.

Restricciones: si tanto indexSchema como indexName se especifican como *NONE, el procedimientoalmacenado sólo comprueba la validez de los componentes comunes del producto.

SQL para SYSTS_VALIDITYCHECKCREATE PROCEDURE SYSPROC.SYSTS_VALIDITYCHECK

(IN INDEXSCHEMA VARCHAR(128) CCSID 1208,IN INDEXNAME VARCHAR(128) CCSID 1208,IN AUTOFIX INTEGER)

EXTERNAL NAME QDBTSLIB.DSN5VALCHKDYNAMIC RESULT SETS 0LANGUAGE CPARAMETER STYLE SQLMODIFIES SQL DATAPROGRAM TYPE MAINCOMMIT ON RETURN NOINHERIT SPECIAL REGISTERS

Ejemplosv Para comprobar la validez de un índice, especifique el mandato siguiente desde cualquier interfaz de

SQL:CALL SYSPROC.SYSTS_VALIDITYCHECK('indexSchema1’,’indexName1’,0)

v Para comprobar y arreglar un índice automáticamente:CALL SYSPROC.SYSTS_VALIDITYCHECK('indexSchema1’,’indexName1’,1)

QDBTSLIB.QDBTS_ROWS_STATUSLos usuarios pueden comprobar qué documentos no se han indexado satisfactoriamente utilizando elprocedimiento almacenado SQL QDBTSLIB.QDBTS_ROWS_STATUS después de llamar aSYSTS_UPDATE.

Con este procedimiento almacenado, los usuarios pueden obtener un conjunto de resultados que presentalos documentos que no se han indexado satisfactoriamente. Los usuarios también pueden optar porgenerar una nueva tabla para almacenar información relacionada de los documentos que no se hanindexado satisfactoriamente.

Sintaxis

>>-QDBTSLIB.QDBTS_ROWS_STATUS (EsquemaÍndice, NombreÍndice, IndicadorConjuntoResultados,EsquemaTabla, NombreTabla) -><

El calificador de esquema es QDBTSLIB.

OmniFind Text Search Server 83

Page 90: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Parámetro

Grupo de parámetros obligatorios

EsquemaÍndiceIdentifica el esquema del índice de búsqueda de texto. Debe especificar un valor que no sea nulopara este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).

NombreÍndiceIdentifica el nombre del índice de búsqueda de texto. El nombre del índice de búsqueda de texto conel esquema de índice identifica de forma exclusiva el índice de texto completo en el subsistema DB2®.Debe especificar un valor que no sea nulo para este parámetro.

El tipo de datos de este parámetro es VARCHAR(128).

Grupo de parámetros opcionales

IndicadorConjuntoResultadosIdentifica si debe devolverse directamente el usuario el conjunto de resultados.

Si el IndicadorConjuntoResultados no se pasa o está establecido en cero, el conjunto de resultados sedevuelve al interlocutor.

Si el IndicadorConjuntoResultados se especifica y NO está establecido en cero, no se devuelve ningúnconjunto de resultados y el interlocutor puede consultar la tabla especificada por EsquemaTabla yNombreTabla.El tipo de datos de este parámetro es INTEGER.

EsquemaTablaIdentifica el esquema de tabla de la tabla. Si IndicadorConjuntoResultados se especifica y NO es cero,este esquema debe existir.

NombreTablaIdentifica el nombre de tabla generado por este procedimiento almacenado. SiIndicadorConjuntoResultados se especifica y NO es cero, este procedimiento almacenado creará unatabla con este nombre de tabla.

Conjunto de resultados o estructura de tabla

TIME TIMESTAMP

STATUS INTEGER

TEXT_STATUSVARCHAR(50)

MESSAGE VARCHAR(1024)

KEYCOLUMNNAMESDepende de las columnas de clave definidas en la tabla base

TIMEMomento en que se ha lanzado el error/aviso. ..

STATUS, TEXT_STATUS

30 WARNING este registro se ha indexado pero hay aviso acerca de él

40 ERROR este registro no se ha indexado satisfactoriamente debido a algunos errores

50 FATALERROR

este registro devuelve un error muy grave e interrumpe la indexación

84 IBM i: OmniFind Text Search Server for DB2 for i

Page 91: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

MESSAGEMuestra el código de error y el mensaje de error. De acuerdo con esta columna, los usuarios puedensaber por qué el registro no se ha indexado satisfactoriamente.

KEYCOLUMNNAMESPuede haber más de una columnas de clave especificada. Si es así, se devolverán todas las columnasde clave. Cada nombre de columna de clave tendrá un prefijo 'PK_'.

Ejemplosv Para comprobar si el índice contiene un documento que no se indexado satisfactoriamente:

CALL QDBTSLIB.QDBTS_ROWS_STATUS(’indexSchema1’,’indexName1’)

El conjunto de resultados se devolverá directamente al interlocutor.v Para generar una nueva tabla para almacenar el resultado:

CALL QDBTSLIB.QDBTS_ROWS_STATUS(’indexSchema1’,’indexName1’,1,’TableSchema’,’ResultTable’)

A continuación, los usuarios pueden consultar la tabla de resultados para obtener más información.SELECT * FROM TABLESCHEMA.RESULTTABLE;

Supongamos que hay 2 columnas (K1, K2) de la tabla base que deben indexarse.Para obtener las filas no indexadas de la usuario, los usuarios pueden utilizar la siguiente sentenciaSQL.SELECT b.*,r.MESSAGE FROM TABLESCHEMA.RESULTTABLE r LFET JOIN BASETABLESCHEMA.BASETABLE b on r.PK_K1=b.K1 and r.PK_K2=b.K2;

A continuación, los usuarios pueden actualizar esa fila en función del mensaje devuelto y luegoinvocar de nuevo SYSTS_UPDATE para indexar la nueva fila modificada.

Diccionarios de sinónimosUn diccionario de sinónimos puede mejorar la calidad de los resultados de búsqueda.

Puede añadir un diccionario de sinónimos a una colección en cualquier momento.

Un diccionario de sinónimos consta de grupos de sinónimos que el usuario define en un archivo XML.Por ejemplo:<?xml version="1.0" encoding="UTF-8"?><synonymgroups version="1.0"><synonymgroup>

<synonym>Paixão</synonym><synonym>amor</synonym><synonym>flor</synonym><synonym>linda</synonym>

</synonymgroup><synonymgroup>

<synonym>worldwide patent tracking system</synonym><synonym>wpts</synonym>

</synonymgroup></synonymgroups>

Añadir un diccionario de sinónimos a una colección:

La especificación de los grupos de sinónimos en un diccionario de sinónimos mejora la calidad de losresultados de búsqueda de texto. El administrador de OMNIFIND tiene la autoridad y los privilegiosadecuados para ejecutar la herramienta de sinónimos e IBM Navigator for i.v Para añadir un diccionario de sinónimos a una colección con la herramienta de sinónimos, siga estos

pasos:1. Cree un archivo XML de sinónimos especificando los grupos de sinónimos, como se muestra en el

ejemplo siguiente:<?xml version="1.0" encoding="UTF-8"?><synonymgroups version="1.0"><synonymgroup>

OmniFind Text Search Server 85

Page 92: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

<synonym>Paixão</synonym><synonym>amor</synonym><synonym>flor</synonym><synonym>linda</synonym>

</synonymgroup><synonymgroup>

<synonym>worldwide patent tracking system</synonym><synonym>wpts</synonym>

</synonymgroup></synonymgroups>

2. Copie el archivo XML de sinónimos en el servidor de búsqueda de texto.3. Utilice la herramienta de sinónimos para añadir el diccionario de sinónimos a una colección.

Puede añadir un diccionario de sinónimos en modalidad de adición o en modalidad desustitución. Si añade un diccionario de sinónimos en modalidad de adición, los sinónimos nuevosse añadirán al diccionario de sinónimos existente. Si añade un diccionario de sinónimos enmodalidad de sustitución, los sinónimos existentes se sustituirán por los sinónimos nuevos que hadefinido para el índice de búsqueda de texto.

Opción Descripción

En IBM i, especifique el mandato siguiente (dentro dela interfaz QSH):

synonymTool.sh importSynonym-synonymFile <vía de acceso absoluta al archivoXML de sinónimos>-collectionName <nombre de colección>-replace <[true|false]>-configPath <vía de acceso absolutaa la carpeta de configuración>

En un servidor Linux, especifique el mandato siguiente: synonymTool.sh importSynonym-synonymFile <vía de acceso absoluta al archivoXML de sinónimos>-collectionName <nombre de colección>-replace <[true|false]>-configPath <vía de acceso absolutaa la carpeta de configuración>

En un servidor Windows, especifique el mandatosiguiente:

synonymTool.bat importSynonym-synonymFile <vía de acceso absoluta al archivoXML de sinónimos>-collectionName <nombre de colección>-replace <[true|false]>-configPath <vía de acceso absolutaa la carpeta de configuración>

Si el formato del archivo XML no es válido o si está vacío, se devolverá un código de error.v Para importar un diccionario de sinónimos a una colección desde IBM Navigator for i, siga estos pasos.

1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Importar diccionario de sinónimos.

Eliminar un diccionario de sinónimos de una colección:

Utilice el script que se suministra para eliminar un diccionario de sinónimos de una colección.

El administrador de OMNIFIND debe recuperar el nombre de la colección de la que debe eliminarse eldiccionario de sinónimos.

Ejecute el script para eliminar un diccionario de sinónimos de una colección.

86 IBM i: OmniFind Text Search Server for DB2 for i

Page 93: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Opción Descripción

En IBM i, especifique el mandato siguiente (dentro dela interfaz QSH):

removeSynonym.sh-collectionName <nombre de colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

En un servidor Linux, especifique el mandato siguiente: removeSynonym.sh-collectionName <nombre de colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

En un servidor Windows, especifique el mandatosiguiente:

removeSynonym.bat-collectionName <nombre de colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

Si una base de datos tiene varios índices de búsqueda de texto, debe realizar esta tarea para cada una delas colecciones correspondientes.

Buscar índices huérfanos y ausentesPuede buscar índices huérfanos y ausentes mediante una función de tabla definida por usuario (UDTF)SQL denominada QDBTS_LISTINXSTS.

Un índice puede quedar huérfano si se llama a un procedimiento almacenado SYSTS_DROP y el servidorse detiene en el momento de ejecutar el procedimiento.

La función QDBTS_LISTINXSTS combina todos los índices de catálogo y colecciones del sistema dearchivos integrado del espacio de nombres actual en una sola tabla. La función decide qué agrupación dealmacenamiento auxiliar (ASP) independiente o *SYSBASE se establece. A continuación, explora eldirectorio de colección de cada servidor de la ASP independiente o de *SYSBASE.

Para *SYSBASE, se comprueba cada uno de los directorios de servidor que se encuentran bajo/QOpenSys/QIBM/ProdData/TextSearch. Para las ASP independientes, se comprueba cada uno de losdirectorios de servidor que se encuentran bajo /el número de ASP/QOpenSys/QIBM/ProdData/TextSearch.Por ejemplo, si el número de ASP independiente es 67, se comprueba cada uno de los directorios deservidor situados bajo /67/QOpenSys/QIBM/ProdData/TextSearch.

Para la información de índice de catálogo, los datos se obtienen de la tabla de catálogoQSYS2.SYSTEXTINDEXES. Si desea comprobar los servidores de una ASP independiente, emita elmandato Establecer grupo de agrupaciones de almacenamiento auxiliar (SETASPGRP) antes de llamar aesta función.

Si desea eliminar posibles índices huérfanos del sistema de archivos integrado una vez identificados,utilice los procedimientos almacenados SYSPROC.SYSTS_REMOVE o SYSPROC.SYSTS_CLEAR_INDEXES o la herramienta “Administración avanzada” en la página 88 (adminTool.sh).

Términos

Índice huérfanoExiste una colección (índice) en el directorio del sistema de archivos integrado del servidor, perono hay ningún índice correspondiente registrado en el catálogo QSYS2.SYSTEXTINDEXES.

Índice ausenteExisten índices de registro en el catálogo QSYS2.SYSTEXTINDEXES, pero no existe el directoriode colección correspondiente.

OmniFind Text Search Server 87

Page 94: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Sintaxis

>>-QDBTS_LISTINXSTS(--null--)---><

Formato de retorno

La función QDBTS_LISTINXSTS devuelve la información de los índices detectados en una tabla. Consulteel mandato SQL siguiente, utilizado para crear la UDTF.

SQL para LISTINXSTS UDTFCREATE FUNCTION QDBTSLIB.QDBTS_LISTINXSTS()

RETURNS TABLE(COLLECTIONNAME VARCHAR(255),INDEXID INTEGER,INDEXSCHEMA VARCHAR(128),INDEXNAME VARCHAR(128),SERVERID INTEGER)

SPECIFIC qdbts_listinxstsSCRATCHPADNO FINAL CALLLANGUAGE C++PARAMETER STYLE DB2SQLEXTERNAL NAME ’QDBTSLIB/QDBTSSP(checkIndex)’;

Ejemplosv Detectar todos los índices huérfanos:

SELECT COLLECTIONNAME, SERVERIDFROM TABLE(QDBTSLIB.QDBTS_LISTINXSTS()) AS TWHERE T.INDEXSCHEMA IS NULL AND T.INDEXNAME IS NULL

v Detectar todos los índices ausentes:SELECT INDEXSCHEMA, INDEXNAME

FROM TABLE(QDBTSLIB. QDBTS_LISTINXSTS()) AS TWHERE T.COLLECTIONNAME is NULL

v Detectar los índices huérfanos en serverid = 2 de la ASP independiente iaspXXX:CONNECT TO iaspXXXSQL:SELECT T.COLLECTIONNAME, S.SERVERPATH

FROM TABLE(QDBTSLIB.QDBTS_LISTINXSTS())AS T LEFT OUTER JOIN QSYS2.SYSTEXTSERVERS S ON (T.SERVERID = S.SERVERID)

WHERE T.INDEXSCHMEA IS NULL AND T.INDEXNAME IS NULL AND T.SERVERID = 2

Referencia relacionada:“SYSPROC.SYSTS_DROP” en la página 34Puede llamar al procedimiento almacenado SYSPROC.SYSTS_DROP para eliminar un índice de búsquedade texto definido mediante el procedimiento almacenado SYSPROC.SYSTS_CREATE.“SYSPROC.SYSTS_REMOVE” en la página 78Puede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_REMOVE.“SYSTS_CLEAR_INDEXES” en la página 81Puede eliminar índices huérfanos con el procedimiento almacenado SQL SYSPROC.SYSTS_CLEAR_INDEXES. Otra forma implícita es invocar SYSTS_START directamente, que intenta borraríndices huérfanos automáticamente.“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.

Administración avanzadaPuede utilizar la herramienta de administración para la administración avanzada.

88 IBM i: OmniFind Text Search Server for DB2 for i

Page 95: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

OmniFind Text Search Server for DB2 for i puede estar en ejecución cuando se utiliza la herramienta deadministración.

Puede utilizar la herramienta de administración para realizar las tareas siguientes:v Comprobar el estado de las colecciones, como por ejemplo averiguar cuántos documentos están

presentesv Suprimir colecciones huérfanasv Notificar la versión del servidorv Notificar todas las colecciones que se encuentran en el servidor de búsqueda de texto

Mandatos

El mandato emitido para ejecutar la herramienta de administración dependerá del sistema operativo en elque esté instalado el servidor de búsqueda de texto. El mandato también depende de la tarea que sedesea realizar.

Tabla 31. Mandatos destinados a comprobar el estado de las colecciones y a suprimir colecciones huérfanas

En IBM i (dentro de la interfazQSH) En un servidor Linux En un servidor Windows

adminTool.sh -[delete|status]–collectionName <nombre colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

adminTool.sh -[delete|status]–collectionName <nombre colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

adminTool.bat -[delete|status]–collectionName <nombre colección>-configPath <vía de acceso absolutaa la carpeta de configuración>

Tabla 32. Mandatos destinados a visualizar la versión del servidor y a notificar todas las colecciones

En IBM i (dentro de la interfazQSH) En un servidor Linux En un servidor Windows

adminTool.sh -[version]-configPath <vía de acceso absolutaa la carpeta de configuración>

adminTool.sh -[version|reportAll]-configPath <vía de acceso absolutaa la carpeta de configuración>

adminTool.bat -[version|reportAll]-configPath <vía de acceso absolutaa la carpeta de configuración>

Opciones

statusComprueba el estado de la colección.

deleteEspecifica que el usuario desea suprimir la colección huérfana.

versionVisualiza la versión del servidor.

reportAllNotifica todas las colecciones que se encuentran en el servidor de búsqueda de texto.

Ejemplo

Para averiguar la versión del servidor, especifique el mandato siguiente en un servidor Linux:adminTool.sh –version -s <vía de acceso absoluta al archivo config.xml del servidor>

Si utiliza un servidor Windows, se le suministrará un script .bat correspondiente.

OmniFind Text Search Server 89

Page 96: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Herramienta ServerInstancePuede utilizar la herramienta ServerInstance para crear o suprimir servidores de *SYSBASE o de unaagrupación de almacenamiento auxiliar (ASP) independiente. También puede utilizar la herramientaServerInstance para enlazar archivos de un servidor con el servidor en el que está instalado OmniFindText Search Server for DB2 for i.

Por omisión, OmniFind Text Search Server for DB2 for i se instala en el directorio /QOpenSys/QIBM/ProdData/TextSearch/server1.

Puede utilizar la herramienta ServerInstance para realizar las tareas siguientes antes de utilizarla paradetener server1 en *SYSBASE:v Crear un servidor en *SYSBASE o en ASP independientesv Suprimir un servidor de *SYSBASE o de ASP independientesv Enlazar archivos de un servidor con server1

SintaxisServerInstance.sh –[create|delete|relink]–servernum <número_servidor>(-port <puerto>)(-device <nombre_dispositivo>)

Opciones de mandato

createCrea un servidor.

deleteSuprime un servidor.

relinkEnlaza archivos de un servidor con server1.

Nota: Esta opción no es necesaria una vez instalado el arreglo temporal de programa (PTF) SI31548en el sistema. El sistema procesa automáticamente la operación de enlace si tiene instalado este PTF.

Parámetros

número_servidorEspecifica el número de servidor. Por ejemplo, si se crea un servidor con el número 3, el directoriodel servidor será /QOpenSys/QIBM/ProdData/TextSearch/server3.

puertoEspecifica el puerto del servidor. Este parámetro sólo es necesario al crear un servidor.

dispositivoEspecifica el nombre de la ASP independiente. Este parámetro sólo es necesario cuando la operaciónse realiza en la ASP independiente.

Ejemplosv Para crear un servidor con el número de servidor 2 y el número de puerto 50000 en *SYSBASE:

ServerInstance.sh -create -servernum 2 -port 50000

v Para crear un servidor con el número de servidor 3 y el número de puerto 50001 en la ASPindependiente iasp1:ServerInstance.sh -create -servernum 3 -port 50001 -device iasp1

v Para suprimir un servidor con el número de servidor 2 de *SYSBASE:ServerInstance.sh -delete -servernum 2

v Para suprimir un servidor con el número de servidor 3 de la ASP independiente iasp1:

90 IBM i: OmniFind Text Search Server for DB2 for i

Page 97: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

ServerInstance.sh -delete -servernum 3 -device iasp1

v Para enlazar archivos de un servidor con el número de servidor 2 de *SYSBASE:ServerInstance.sh -relink -servernum 2

v Para enlazar archivos de un servidor con el número de servidor 3 de la ASP independiente iasp1:ServerInstance.sh -relink -servernum 3 -device iasp1

Health CheckerHealth Checker es una herramienta de verificación de entorno que puede utilizarse para diagnosticarcualquier problema de configuración de OmniFind Text Search Server for DB2 for i. Puede utilizarse paraverificar que los índices y servidores de texto de OmniFind Text Search Server for DB2 for i estánfuncionando correctamente y generará un informe con avisos o errores de los posibles problemasencontrados.

Requisitos previos

El comprobador de funcionamiento de OmniFind Text Search Server for DB2 for i se basa en ARE(Application Runtime Expert for i, producto 5770-ARE). Por tanto, ARE debe estar instalado para poderejecutar esta herramienta.

Procedimientos de Health Checker

Health checker se invoca mediante una serie de procedimientos almacenados SQL de DB2. Losprocedimientos pueden invocarse a través de cualquier interfaz SQL, incluyendo lenguajes de alto nivelcomo RPG y COBOL. Toda la información, incluidos los avisos o errores, se devuelve a través de unconjunto de resultados correspondiente.

SYSPROC.SYSTS_HC_GENERAL()

Este procedimiento almacenado se utiliza para comprobar el estado general del producto OmniFind TextSearch Server for DB2 for i. El procedimiento comprueba la configuración del producto. Este es unejemplo que devuelve todos los mensajes de aviso y de error relacionados con la información deconfiguración general de OmniFind Text Search Server for DB2 for i:> CALL SYSPROC.SYSTS_HC_GENERAL();

SYSPROC.SYSTS_HC_USR_AUTH()

Este procedimiento almacenado se utiliza para identificar los problemas de autorización del usuarioinvocante que podrían impedirle utilizar OmniFind Text Search Server for DB2 for i para las búsquedas.Este es un ejemplo que devuelve los avisos o errores relativos a las autorizaciones del usuario invocante:> CALL SYSPROC.SYSTS_HC_USR_AUTH();

SYSPROC.SYSTS_HC_IDX()

Este procedimiento almacenado se utiliza para comprobar todos los índices de texto de OmniFind TextSearch Server for DB2 for i para asegurarse de que están en un estado válido. Nota: si utiliza un grupode IASP (agrupación de almacenamiento auxiliar independiente), esto sólo se aplica al grupo de IASPactualmente activo en el trabajo.

SYSSTS.HC_SVR()

Este procedimiento almacenado se utiliza para comprobar el estado de todos los servidores de textolocales de OmniFind Text Search Server for DB2 for i que se han definido.

OmniFind Text Search Server 91

Page 98: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Información adicional

Encontrará más información sobre el comprobador de estado de OmniFind Text Search Server for DB2 fori, incluidas diversas opciones adicionales de procedimientos almacenados, así como una interfaz deQShell, en developerWorks OmniFind Text Search Server for DB2 for i bajo el artículo ’Health Checker’.

Consideraciones relativas a las ASP independientes para OmniFindText Search Server for DB2 for iPuede administrar un índice de búsqueda de texto en una agrupación de almacenamiento auxiliar (ASP)independiente. La ASP puede conmutarse entre varios sistemas, por lo que existen consideracionesadicionales.

Durante la instalación de OMNIFIND, se crea un servidor de búsqueda de texto local. En el caso de lasASP independientes, un administrador crea un servidor de texto local mediante la herramientaServerInstance (ServerInstance.sh) una vez creado el grupo de ASP independientes.

Después de crear un servidor de búsqueda de texto local en la ASP independiente, los datos de índiceexisten en el sistema de archivos de la ASP independiente. Los datos están disponibles si la ASPindependiente se conmuta a otro sistema. El administrador sólo necesita crear un servidor de búsquedade texto local una vez para cada grupo de ASP independientes.

Los índices de búsqueda de texto que se encuentran en la ASP independiente deben estar contenidos enservidores de búsqueda de texto definidos en la ASP independiente. No es posible visualizar un servidorde búsqueda de texto definido en otro grupo de ASP independientes o en la ASP del sistema cuando eltrabajo está conectado a la ASP independiente.

Para crear un servidor de búsqueda de texto en una ASP independiente denominada miiasp, siga estospasos:1. Active la ASP independiente con el mandato CL Trabajar con estado de configuración (WRKCFGSTS)

o mediante System i Navigator.2. Conéctese al espacio de nombres del grupo de ASP independientes mediante el mandato CL

Establecer grupo de agrupaciones auxiliares (SETASPGRP).3. Utilice el script ServerInstance.sh para crear un servidor de búsqueda de texto.

A continuación figura un ejemplo del mandato QSH que debe utilizarse:/QOpenSys/QIBM/ProdData/TextSearch/ServerInstance.sh -create-servernum 2 -port nnnnn -device miiasp

En el mandato, nnnnn es un número de puerto disponible para el servidor. Este número de puertodebe estar disponible en todos los sistemas a los que el grupo de ASP independientes puedaconmutarse.

Una vez definido un servidor de búsqueda de texto para el grupo de ASP independientes, puedenutilizarse los procedimientos almacenados administrativos para iniciar y detener el servidor de búsquedade texto. Los procedimientos almacenados también pueden utilizarse para crear, eliminar y actualizaríndices de búsqueda de texto.

Nota: Cuando se activa la ASP independiente, se añaden entradas de planificador de trabajos para losíndices con actualizaciones planificadas existentes en la ASP independiente. Las entradas del planificadorde trabajos permiten continuar con las actualizaciones planificadas aunque la ASP independiente seconmute entre sistemas.

92 IBM i: OmniFind Text Search Server for DB2 for i

Page 99: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Restricciones de utilización de índices de búsqueda de texto y ASPindependientesv Todos los sistemas a los que la ASP independiente puede conmutarse deben tener instalado OmniFind

Text Search Server for DB2 for i y estar al mismo nivel de arreglo temporal de programa (PTF).v No cree índices de búsqueda de texto en una ASP que no sea aquella sobre la que se ha creado el

índice de tabla.v Los catálogos de sistema SYSTEXTSERVERS, SYSTEXTINDEXES, SYSTEXTDEFAULTS,

SYSTEXTCOLUMNS y SYSTEXTCONFIGURATION no contienen registros para índices y servidoresdefinidos en un grupo de ASP diferente, incluida la ASP del sistema. Los catálogos contienen sólo filaspara índices y servidores definidos para el grupo de ASP independientes al que el trabajo estáconectado.

v Los procedimientos almacenados administrativos sólo pueden utilizarse para realizar funciones enservidores de búsqueda de texto e índices definidos en el grupo de ASP independientes al que eltrabajo está conectado.

Nota: Puede utilizar las sentencias SQL CONTAINS y SCORE cuando un trabajo esté conectado a ungrupo de ASP independientes, aunque la columna esté basada en una tabla existente en la ASP delsistema.

Alta disponibilidadPuede implementar una solución de alta disponibilidad que incluya índices de búsqueda de textoutilizando API y mandatos existentes. Ahora, DB2 for IBM i reconoce los índices de búsqueda de texto yrealiza acciones especiales durante las operaciones de DB2 que afectan a dichos índices.

Consideraciones especiales relativas a índices de búsqueda de texto, alta disponibilidad yadministración de bases de datos

v Un mandato de supresión de archivo (mandato CL DLTF) o una sentencia SQL DROP VIEW ejecutadoscon respecto a la vista que representa el índice de búsqueda de texto provoca la eliminación delmismo. La eliminación falla si se ejecuta bajo control de compromiso.

v Al restaurar una tabla o archivo físico que se ha salvado con un índice de búsqueda de texto a partirde una columna no habilita los desencadenantes creados para el índice de búsqueda de texto antes dela operación de salvar. Si más adelante se restaura o crea el índice de búsqueda de texto, losdesencadenantes se añaden como parte de la creación del índice. Este método permite que lasaplicaciones funcionen aunque el índice de búsqueda de texto construido originariamente a partir de latabla no se restaure o cree.

Reproducción de entradas de diario para procedimientos almacenados administrativos de OmniFind

v La reproducción de la entrada de diario (API QDBRPLAY) para la creación de la vista que representa elíndice de búsqueda de texto provoca la creación del índice de búsqueda de texto.

v La adición y eliminación de los desencadenantes en la tabla base durante las llamadas a losprocedimientos SYSTS_CREATE o SYSTS_DROP no provoca el registro de entradas de diario.

v Una llamada al procedimiento almacenado SYSTS_UPDATE o SYSTS_REPRIMEINDEX da comoresultado el registro de una entrada de diario con respecto a la vista del índice de búsqueda de texto.Una repetición de esta entrada de diario mediante la API QDBRPLAY provoca la repetición de lallamada al procedimiento correcto.

v Las actualizaciones planificadas automáticamente NO dan como resultado entradas de diario para elíndice y no pueden reproducirse.

v Una llamada a SYSTS_ALTER provoca un cambio de entrada de diario en la vista. Una repetición de laentrada de diario mediante la API QDBRPLAY provoca la repetición de la llamada a SYSTS_ALTER.

Recomendaciones con respecto a la alta disponibilidad

OmniFind Text Search Server 93

Page 100: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Si desea implementar una solución de alta disponibilidad, tenga en cuenta las siguientesrecomendaciones:v Después de crear el índice de búsqueda de texto en el sistema primario, puede utilizarse la API

QDBRPLAY para repetir la creación en el sistema de copia de seguridad.v El sistema de copia de seguridad contiene ahora un índice duplicado, con actualizaciones planificadas

que se producen con la misma frecuencia que en el sistema primario.v A medida que los cambios de registro se reproducen en los sistemas de copia de seguridad basados en

la tabla, se registran en la tabla intermedia del sistema de copia de seguridad.v Las llamadas a SYSTS_UPDATE, SYSTS_REPRIMEINDEX y SYSTS_ALTER en el sistema primario

generan entradas de diario que pueden reproducirse en el sistema de copia de seguridad.v NO es necesario que los clientes registren por diario y repliquen los archivos IFS para los índices de

búsqueda de texto.v Es necesario asegurarse de que los desencadenantes que se han añadido como parte de

SYSTS_CREATE estén habilitados para registrar los cambios en la tabla base. Estos desencadenantespueden identificarse mediante el prefijo especial "QDBTS" en el nombre del desencadenante.

Mandato CL Aplicar cambios de diario (APYJRNCHG)

Puede utilizarse el mandato CL Aplicar cambios de diario (APYJRNCHG) para reproducir sucesos deOmniFind. Los usuarios que deseen utilizar este mandato deben considerar cuidadosamente el orden enque se reproducen las entradas de diario. La tabla intermedia de QSYS2 debe sincronizarse exactamentecon la tabla base en el momento de reproducir o invocar SYSTS_UPDATE.

Los cambios de registro que se aplican a la tabla base NO se registran en la tabla intermedia durante elproceso de APYJRNCHG. En algunos casos puede ser necesario llamar al procedimiento almacenadoSYSTS_REPRIMEINDEX para reconstruir el índice después de utilizar este mandato.Referencia relacionada:“SYSPROC.SYSTS_REPRIMEINDEX” en la página 80Puede ajustar (reprime) el índice e iniciar una actualización inicial mediante el procedimiento almacenadoSYSPROC.SYSTS_REPRIMEINDEX. Utilice este procedimiento almacenado cuando desee restaurar datosdesde la tabla base.

Análisis del rendimientoEl análisis de rendimiento de OMNIFIND incluye la elección de la definición de índice correcta, elmanejo eficiente de los documentos y la especificación de una búsqueda selectiva.

Segundo plano

El proceso de OmniFind es una combinación de tareas en un trabajo 'cliente' de componente frontal y detareas en un trabajo 'servidor' de segundo plano, que se intercomunican. La comunicación se realizamediante conexiones de socket estándar.

El trabajo cliente lee los registros de la tabla de base de datos adecuada durante las construcciones y elmantenimiento del índice. Procesa el registro de los cambios de tabla, envía los documentos para elproceso y maneja las solicitudes de búsqueda de texto mediante las funciones SQL CONTAINS o SCORE.El trabajo cliente es aquel en el que se ejecuta el procedimiento, por ejemplo SYSTS_CREATE oSYSTS_UPDATE, o la consulta con CONTAINS o SCORE. El rendimiento del trabajo cliente depende dela rapidez de proceso de las acciones de base de datos y la recuperación y transporte eficientes dedocumentos de texto al trabajo servidor.

El trabajo servidor analiza los documentos enviados desde el trabajo cliente, mantiene el índice de textoasociado con las inserciones y supresiones y maneja las solicitudes de búsqueda dentro del índice. Elrendimiento del trabajo servidor depende de su capacidad para comunicarse con los trabajos cliente y

94 IBM i: OmniFind Text Search Server for DB2 for i

Page 101: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

para manejar los documentos de forma eficiente. Generalmente hay un único trabajo servidor que daservicio a varios trabajos cliente. En consecuencia, el trabajo servidor es un trabajo multihebra para quepueda manejar varios clientes.

Un índice de texto no se actualiza inmediatamente con los cambios realizados en la tabla de base dedatos subyacente. En lugar de ello, los cambios de registro de la tabla se registran mediante unacombinación de un desencadenante de base de datos y una tabla intermedia. La tabla intermedia registrael tipo de actualización (inserción, actualización o supresión) junto con una indicación de qué registro dela tabla de base de datos ha cambiado. En el archivo de registro no se captura el texto cambiado; sólo lainformación que identifica el registro que ha cambiado.

Los cambios en los registros de la tabla no se reflejan en el índice de texto, y en consecuencia tampoco enlas búsquedas con CONTAINS o SCORE, hasta la próxima operación SYSTS_UPDATE satisfactoria.

Las actualizaciones de un índice de texto posteriores a la actualización inicial se denominanactualizaciones incrementales. Estas actualizaciones añaden o suprimen documentos del índice de textoen función de los cambios de registro efectuados en la tabla subyacente desde la última actualización.

Los cambios realizados en la tabla base se registran en una tabla intermedia. En una actualizaciónincremental, la tabla intermedia se utiliza para determinar qué registros de la tabla base han cambiado.Dichos registros se leen más adelante de la tabla base y su contenido actualizado se refleja en el índice.

La actualización inicial es un proceso más eficiente, por fila, que una actualización incremental. La tablabase se procesa sin necesidad de procesar también la tabla intermedia. Por tanto, es una técnicaaconsejable de cara al rendimiento realizar la actualización inicial en el índice de texto después de llenarinicialmente la tabla subyacente. Esta técnica minimiza el tiempo necesario para llenar el índice con losdocumentos.

Una opción de configuración importante relacionada con el rendimiento es UPDATEAUTOCOMMIT. Estevalor define la frecuencia con la que el trabajo cliente de la base de datos interrumpe el proceso dedocumentos. El cliente espera a que el trabajo servidor confirme que ha procesado todos los documentosque se le han enviado actualmente. UPDATEAUTOCOMMIT se utiliza como método de punto decomprobación para que la base de datos pueda establecer límites de trabajo finalizado.

Si la actualización del índice se interrumpe y prosigue más adelante, el proceso se reinicia en el límite delpunto de comprobación. Al igual que en cualquier interrupción, un límite de punto de comprobaciónobliga a la suspensión del flujo de documentos y a la eliminación de los documentos de la interconexiónentre el cliente y el servidor; en otras palabras, se vacía de documentos. Este proceso de inicio ydetención puede tener un efecto negativo considerable sobre el rendimiento.

El valor predeterminado de UPDATEAUTOCOMMIT es 100, que proporciona puntos de comprobaciónfrecuentes. Si se establece en un valor superior, generalmente se produce un rendimiento de tiempo derespuesta mejor para las llamadas a SYSTS_UPDATE. Sin embargo, un valor superior no implica untiempo de recuperación mayor si la actualización se cancela y se reinicia.

El establecimiento de UPDATEAUTOCOMMIT es un número superior (o en cero, que significa que no seproducirán puntos de comprobación) proporciona el mejor rendimiento de tiempo de respuesta. Sinembargo, si se cancela la actualización inicial, OmniFind debe reiniciarse desde el principio del índiceconstruido, debido a que no existe ningún punto de comprobación.

Para algunos clientes, un valor entre 5000 y 20000 ofrece un equilibrio razonable entre el rendimiento y larecuperabilidad de puntos de comprobación.

OmniFind Text Search Server 95

Page 102: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Elegir la definición de índice correcta

Un índice de texto puede especificarse en cuatro tipos de configuración FORMAT: TEXT, HTML, XML eINSO.1. TEXT es generalmente el formato más eficiente. El texto se lee del registro de base de datos y se envía

al servidor de texto, que lo procesa directamente.2. HTML se utiliza cuando se sabe que los documentos se encuentran en el formato de HyperText

Markup Language. El texto se procesa ignorando los valores de control de marcación del documento.3. XML se utiliza cuando se sabe que los documentos se encuentran en el formato de Extensible Markup

Language. Se toma en especial consideración la naturaleza estructural del contenido de losdocumentos, con seguimiento de elementos, atributos y la jerarquía interna del documento. Lamarcación de un índice como XML ofrece la posibilidad de realizar búsquedas XML mediante ellenguaje de búsqueda xmlxp (xpath) en las funciones CONTAINS y SCORE.

4. INSO se utiliza cuando el documento debe procesarse al revés (INSide Out). En este formato, sepresupone que el contenido de cada documento es más que texto simple. Cada documento sepreanaliza para determinar de qué tipo de documento se trata y, a continuación, se convierte a textosin formato. Los documentos INSO son generalmente documentos de tratamiento de texto enriquecidogenerados por programas de tratamiento de texto.

Desde la perspectiva del rendimiento, el trabajo para indexar un documento aumenta al pasar delformato TEXT al formato INSO. Aunque el formato INSO maneja texto simple, genera más carga globalque el formato TEXT, ya que tiene lugar un proceso de interpretación. Utilice TEXT cuando el documentosea de texto simple en la columna de base de datos.

La opción de configuración LANGUAGE no es estrictamente necesaria, ya que OmniFind determina ellenguaje del documento en función de la exploración. Sin embargo, si se conoce el lenguaje de losdocumentos, el hecho de especificarlo en la opción LANGUAGE puede mejorar el rendimiento. Estolimitará el volumen de interpretación que debe realizarse.

Manejar documentos de forma eficiente

Los trabajos cliente y servidor comunican la información del documento mediante UTF (UnicodeTransformation Format). Para convertir el documento a este formato, el cliente lo lee de la base de datosy convierte los datos resultantes a UTF-8, también denominado CCSID 1208. Todos el texto se convierte aUTF-8 antes de enviarlo al servidor.

Para mejorar el rendimiento, establezca la columna de texto que se indexa en el CCSID 1208 para evitaresta conversión, mejorando con ello la eficiencia del proceso de manejo de documentos.

Utilizar SYSTS_REPRIMEINDEX en lugar de SYSTS_UPDATE para obtener unaposible mejora de rendimiento

SYSTS_REPRIMEINDEX y SYSTS_UPDATE se utilizan para actualizar el índice de búsqueda de texto.SYSTS_REPRIMEINDEX se utiliza para volver a crear el índice. SYSTS_UPDATE se utiliza para actualizarel índice con los cambios incrementales utilizados después de la última actualización satisfactoria. Enalgunos casos, SYSTS_REPRIMEINDEX puede funcionar mejor que SYSTS_UPDATE.

Para determinar si SYSTS_REPRIMEINDEX funcionará mejor que SYSTS_UPDATE, compruebe lacolumna PENDINGCOUNT de la vista Índice de búsqueda de texto. La columna PENDINGCOUNTindicará cuántas filas tendrán que modificarse para el próximo proceso de actualización. Si el usuario haactualizado el mismo registro en la tabla base 10 veces, la columna PENDINGCOUNT se incrementará en10. Por tanto, si el usuario actualiza la tabla base con frecuencia, la columna PENDINGCOUNTaumentará. En la mayoría de los casos, si la columna PENDINGCOUNT es mayor que el número total dela tabla base, el procedimiento SYSTS_REPRIMEINDEX será la mejor opción en lugar deSYSTS_UPDATE.

96 IBM i: OmniFind Text Search Server for DB2 for i

Page 103: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Especificar una búsqueda selectiva

Las búsquedas de texto se realizan mediante las funciones CONTAINS o SCORE dentro de una sentenciade consulta SQL. Estas búsquedas comparan los criterios de búsqueda de la función con los documentosasociados con la columna en la que se busca. Los registros coincidentes se identifican y seleccionan. Eltrabajo cliente envía la solicitud de búsqueda al servidor y recibe la respuesta con respecto a si se haencontrado una coincidencia.

Al igual que en todos los criterios de búsqueda, cuanto más selectiva sea la búsqueda, más eficienteresultará. La búsqueda de frases habituales, como por ejemplo el artículo 'the' en el idioma inglés,produce numerosas coincidencias y puede afectar negativamente al rendimiento. En la práctica, esimprobable que una búsqueda de este tipo proporcione información significativa. La especificación defrases de búsqueda más selectivas producirá menos coincidencias más significativas.

Generalmente, la utilización de CONTAINS en la cláusula WHERE de una sentencia SQL ofrece un mejorrendimiento que utilizar AND para otros criterios. Por ejemplo:SELECT bn, pubdate, descriptionFROM myBooksWHERE CONTAINS(description,’Alladin’) = 1AND Pubdate > '2004-01-01’

Utilizar CONTAINS y SCORE

El optimizador puede mejorar el rendimiento de las funciones CONTAINS y SCORE combinandointernamente y sustituyendo estas funciones incorporadas por una función de tabla definido por elusuario (UDTF). La UDTF devuelve una lista de documentos coincidentes en un resultado. En muchoscasos, este proceso de UDTF ofrece un mejor rendimiento que el proceso alternativo consistente eninvocar la función incorporada para cada registro para determinar si existe una coincidencia.

Para habilitar el optimizador para realizar la reescritura de la UDTF, la función CONTAINS debe:v residir en la cláusula WHERE de la sentencia SQLv estar conectada mediante "AND" a cada predicado adicional de la cláusula WHEREv ser una comparación con el valor 1.

Por ejemplo, la cláusula:WHERE CONTAINS(MyDocuments, ’java performance’) = 1

podría reescribirse mediante el optimizador en el formato de UDTF. Sin embargo, la cláusula:WHERE CONTAINS(MyDocuments, ’java performance’) = 1 OR price >100

no podría reescribirse debido a que se aplica OR a CONTAINS para otros predicados.

Nota: cuando se habilita una reescritura de UDTF, el optimizador sigue utilizando la comparación decoste para elegir el plan óptimo.Referencia relacionada:“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizar búsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento de búsqueda. La función devuelve un resultado queindica si se ha encontrado una coincidencia.“SCORE” en la página 43Puede utilizar la función SCORE para realizar búsquedas en un índice de búsqueda de texto utilizandocriterios especificados en un argumento de búsqueda. La función devuelve una puntuación de relevanciaque mide hasta que punto un documento coincide con la consulta.

OmniFind Text Search Server 97

Page 104: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“SYSPROC.SYSTS_UPDATE” en la página 36Puede llamar al procedimiento almacenado SYSPROC.SYSTS_UPDATE para actualizar el índice debúsqueda de texto a fin de reflejar el contenido actual de la columna de texto.“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

Consideraciones relativas a las transaccionesTenga en cuenta el entorno al decidir la frecuencia con la que va a actualizar los índices de texto a partirde los datos subyacentes de las tablas de base de datos.

Una consideración de amplio espectro para los usuarios de bases de datos tradicionales es el concepto delímites de transacción y proceso de transacción. Un ejemplo clásico de ello es una transacción bancaria, enla que se transfiere dinero de una cuenta a otra. La transferencia se considera una única transacción,independientemente de que se realice o no. El cliente no deseará que el dinero se elimine de una cuentasin que aparezca en la otra hasta transcurrido algún tiempo. A su vez, el banco no desea que el dineroaparezca en ambas cuentas durante algún tiempo hasta que la transacción se haya completado. La idea esque, si se realiza un cambio, éste se refleje inmediatamente.

En gestión de la información existen muchos ejemplos en los que los retardos son más aceptables eincluso esperados. En un diseño de depósito de datos tradicional, el contenido del depósito de datoscarece con frecuencia de los datos operativos durante horas, o incluso más tiempo. Esta aceptación delretardo se basa en una combinación de expectativas realistas de un depósito de datos y el deseo de contarcon datos coherentes y previsibles.

Las búsquedas de texto no estructurado se sitúan en algún punto entre estos extremos. En la práctica, laindexación de documentos de texto es un proceso intensivo consistente en analizar y dividir elsignificado subyacente de las palabras del documento. Las búsquedas de texto permiten que unabúsqueda de ‘mice' (ratones, en inglés) encuentre los documentos que contienen ‘mouse' (ratón, eninglés). Este resultado de búsqueda se produce debido a la capacidad de la técnica de indexación paraseparar las palabras en sus significados subyacentes. Este análisis se realiza en el momento de indexar undocumento para que las búsquedas subsiguientes sean lo más rápidas posible.

Los usuarios de índices de bases de datos tradicionales esperan que el índice refleje el estado de los datosen la tabla de base de datos. Esta expectativa no se cumple en el caso de un índice de texto. El contenidodel índice de texto refleja el estado de la tabla en función del momento en que se realizó la últimaactualización (SYSTS_UPDATE).

En un entorno altamente cambiante, es improbable que el índice de texto refleje el estado actual de latabla en un momento dado. Sin embargo, en un entorno más previsible, en el que la tabla de base dedatos se actualice con menor frecuencia o se realice en modalidad de proceso por lotes, lasactualizaciones del índice de texto pueden temporizarse para que se realicen después de la actualizaciónde la tabla, reflejando exactamente el estado de ésta.

Es importante que las expectativas con respecto a un índice de texto sean adecuadas. Utilice la opciónUPDATE FREQUENCY en los procedimientos “SYSPROC.SYSTS_CREATE” en la página 19 o“SYSPROC.SYSTS_UPDATE” en la página 36 del índice de texto o llame explícitamente al procedimientoSYSTS_UPDATE para actualizar adecuadamente el contenido del índice de texto.

Para entornos más estáticos, como por ejemplo cargas de datos masivas, es aconsejable temporizar laactualización del índice de texto para que se produzca una vez realizada la carga masiva. En entornosmás orientados a transacciones, puede establecerse el valor UPDATE FREQUENCY en una duración más

98 IBM i: OmniFind Text Search Server for DB2 for i

Page 105: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

corta o invocarse con frecuencia el procedimiento SYSTS_UPDATE. Normalmente, cuanto mayor es lafrecuencia de actualización, mayor es la carga de trabajo a la que se somete la máquina.Referencia relacionada:“Tabla de administración QSYS2.SYSTEXTINDEXES” en la página 112Puede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.

Utilización de IBM Navigator for iPuede administrar los servidores de búsqueda de texto e índices de búsqueda de texto de OmniFindmediante IBM Navigator for i.1. En la ventana de IBM Navigator for i, expanda el sistema que desea utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Seleccione Búsqueda de texto de OmniFind.

Trabajar con servidores de búsqueda de textoPuede iniciar y detener los servidores de búsqueda de texto de OmniFind y crear un índice de búsquedade texto mediante IBM Systems Director Navigator for i.

Visualizar el estado de los Servidores de texto de OmniFind:

1. Seleccione la carpeta Servidores de texto en el panel derecho.2. Visualice el estado de los servidores de búsqueda de texto configurados actualmente en el sistema en

el panel derecho.3. Seleccione Renovar para renovar la lista de servidores.

OmniFind Text Search Server 99

Page 106: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Iniciar y detener los Servidores de texto de OmniFind:

1. Seleccione el recuadro situado junto al ID de servidor seleccionado en el panel derecho.2. En el menú Acciones, seleccione una de las acciones siguientes:

v Iniciar servidorv Detener servidorv Crear un índice de búsqueda de texto

Crear un índice de búsqueda de texto:

100 IBM i: OmniFind Text Search Server for DB2 for i

Page 107: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Trabajar con índices de búsqueda de textoPuede realizar operaciones sobre cualquier índice de búsqueda de texto de un sistema mediante IBMSystems Director Navigator for i.

Visualizar los índices de texto de OmniFind para un servidor de texto:

1. En la ventana de IBM Systems Director Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Seleccione Búsqueda de texto de OmniFind.5. Seleccione Servidores de texto.6. Seleccione el servidor de texto con el que desee trabajar. Los índices correspondientes a ese servidor

se visualizarán en el panel derecho.

OmniFind Text Search Server 101

Page 108: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Visualizar los índices de texto de OmniFind para este sistema:

1. Seleccione Búsqueda de texto de OmniFind.2. Seleccione Índices de texto. Estos índices son todos los índices de búsqueda de texto correspondientes

a este sistema en la partición actual.

Realizar operaciones sobre un índice de texto:

102 IBM i: OmniFind Text Search Server for DB2 for i

Page 109: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

1. Seleccione en el panel derecho el recuadro correspondiente al índice con el que desee trabajar.2. Pulse Seleccionar acción en el recuadro situado en la parte superior del panel.

v Definiciónv Actualizaciónv Reinicializaciónv Supresiónv Descripción

Visualizar los índices de texto de OmniFind para un esquema:

1. En la ventana de IBM Systems Director Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Expanda Esquemas.5. Expanda el esquema con el que desee trabajar.6. Seleccione Índices de texto de OmniFind. Estos índices son todos los índices de búsqueda de texto

correspondientes a este esquema.

Visualizar construcciones de índice de búsqueda de texto:

Puede visualizar los índices de texto que la base de datos está construyendo mediante IBM SystemsDirector Navigator. Esta vista resulta de utilidad para determinar cuándo quedan disponibles los índicesde búsqueda de texto para las aplicaciones.

Para visualizar los índices de búsqueda que se están construyendo, siga estos pasos:1. En la ventana de IBM Systems Director Navigator, expanda el sistema que desee utilizar.

OmniFind Text Search Server 103

Page 110: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Seleccione Mantenimiento de base de datos.5. Seleccione Construcciones de índice de texto.

Este panel sólo muestra las actualizaciones de índice de búsqueda de texto en proceso. Si no hayactualizaciones o ajustes ejecutados actualmente en el sistema, estará vacío.

Utilizar System i NavigatorPuede administrar los servidores de búsqueda de texto e índices de búsqueda de texto de OmniFindmediante System i Navigator.1. En la ventana de System i Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Seleccione Búsqueda de texto de OmniFind.

104 IBM i: OmniFind Text Search Server for DB2 for i

Page 111: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Trabajar con servidores de búsqueda de textoPuede iniciar y detener los servidores de búsqueda de texto de OmniFind y crear un índice de búsquedade texto mediante System i Navigator.

Visualizar el estado de los Servidores de texto de OmniFind:

1. Seleccione la carpeta Servidores de texto en el panel derecho.2. Visualice el estado de los servidores de búsqueda de texto configurados actualmente en el sistema en

el panel derecho.3. Seleccione F5 para renovar la lista de servidores.

OmniFind Text Search Server 105

Page 112: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Iniciar y detener los Servidores de texto de OmniFind:

1. Seleccione el ID de servidor seleccionado en el panel derecho.2. Pulse el botón derecho del ratón para visualizar las opciones:

v Iniciar servidorv Detener servidorv Crear un índice de búsqueda de texto

Crear un índice de búsqueda de texto:

106 IBM i: OmniFind Text Search Server for DB2 for i

Page 113: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Trabajar con índices de búsqueda de textoPuede realizar operaciones sobre cualquier índice de búsqueda de texto de un sistema mediante System iNavigator.

Visualizar los índices de texto de OmniFind para un servidor de texto:

1. En la ventana de System i Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Seleccione Búsqueda de texto de OmniFind.5. Seleccione Servidores de texto.6. Seleccione el servidor de texto con el que desee trabajar. Los índices correspondientes a ese servidor

se visualizarán en el panel derecho.

OmniFind Text Search Server 107

Page 114: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Visualizar los índices de texto de OmniFind para este sistema:

1. Seleccione Búsqueda de texto de OmniFind.2. Seleccione Índices de texto. Los índices mostrados son todos los índices de búsqueda de texto

correspondientes a este sistema en la partición actual.

108 IBM i: OmniFind Text Search Server for DB2 for i

Page 115: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Realizar operaciones sobre un índice de texto:

1. Seleccione en el panel derecho un índice con el que desee trabajar.2. Pulse el índice con el botón derecho del ratón.3. Seleccione una operación:

v actualizarv ajustarv suprimirv ver descripciónv ver definiciónv modificar definición

Visualizar los índices de texto de OmniFind para un esquema:

1. En la ventana de System i Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Expanda Esquemas.5. Expanda el esquema con el que desee trabajar.6. Seleccione Índices de texto de OmniFind. Estos índices son todos los índices de búsqueda de texto

correspondientes a este esquema.

OmniFind Text Search Server 109

Page 116: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Visualizar construcciones de índice de búsqueda de texto:

Puede visualizar los índices de texto que la base de datos está construyendo mediante System iNavigator. Esta vista resulta de utilidad para determinar cuándo quedan disponibles los índices debúsqueda de texto para las aplicaciones.

Para visualizar los índices de búsqueda que se están construyendo, siga estos pasos:1. En la ventana de System i Navigator, expanda el sistema que desee utilizar.2. Expanda Bases de datos.3. Expanda la base de datos con la que desee trabajar.4. Expanda Mantenimiento de base de datos.5. Seleccione Construcciones de índice de texto.

Este panel sólo muestra las actualizaciones de índice de búsqueda de texto en proceso. Si no hayactualizaciones o ajustes ejecutados actualmente en el sistema, estará vacío.

110 IBM i: OmniFind Text Search Server for DB2 for i

Page 117: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tablas de administración de búsqueda de textoPuede dar soporte a los servidores e índices de búsqueda de texto mediante las tablas de administraciónde QSYS2.

Tabla de administración QSYS2.SYSTEXTDEFAULTSPuede visualizar los parámetros y valores predeterminados en la tabla de administraciónQSYS2.SYSTEXTDEFAULTS. Esta tabla se crea al instalar OmniFind Text Search for DB2 for i.

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTDEFAULTS.

Tabla 33. Contenido de la tabla de administración QSYS2.SYSTEXTDEFAULTS

Nombre de columna Tipo de datosCapacidad paranulos Descripción

NAME VARCHAR(30) No Nombre de un parámetropredeterminado de la base de datospara la búsqueda de texto.

VALUE VARCHAR(512) No Valor del parámetro predeterminadopara la búsqueda de texto.

TYPE INTEGER No Reservada.

OmniFind Text Search Server 111

Page 118: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla de administración QSYS2.SYSTEXTINDEXESPuede visualizar información acerca de cada índice de búsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda de texto tiene un nombre, un nombre de esquema yun nombre de colección asociada en el servidor de búsqueda de texto.

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTINDEXES. La claveexclusiva de esta tabla es la columna INDEXSCHEMA con la columna INDEXNAME. La clave primariaes la columna INDEXID.

Tabla 34. Contenido de la tabla de administración QSYS2.SYSTEXTINDEXES

Nombre de columna Tipo de datosCapacidad paranulos Descripción

INDEXID INTEGER No ID de índice del índice de búsqueda detexto generado de forma exclusiva.

INDEXSCHEMA VARCHAR(128) No Nombre de esquema del índice debúsqueda de texto.

INDEXNAME VARCHAR(128) No Nombre no calificado del índice debúsqueda de texto.

TABLESCHEMA VARCHAR(128) No Nombre de esquema de la tabla base.

TABLENAME VARCHAR(128) No Nombre no calificado de la tabla base.

TABLEIASP SMALLINT No ASP independiente de la tabla base.

COLLECTIONNAME VARCHAR(255) No Nombre de la colección asociada en elservidor de búsqueda de texto.

SERVERID INTEGER No ID de servidor del índice de búsquedade texto.

TAKEOVERSERVERID INTEGER Sí Reservada para uso futuro.

TAKEOVERSERVERPULSE TIMESTAMP Sí Reservada para uso futuro.

SEARCHARGS VARBINARY(1024) Sí Reservada para uso futuro.

ALIASSCHEMA VARCHAR(128) No El alias del esquema de la tabla baseutilizada en el procedimientoalmacenado SYSPROC.SYSTS_CREATE.Si no se utiliza ningún alias, este valores idéntico a TABLESCHEMA.

ALIASNAME VARCHAR(128) No El alias del nombre de la tabla baseutilizada en el procedimientoalmacenado SYSPROC.SYSTS_CREATE.Si no se utiliza ningún alias, este valores idéntico a TABLENAME.

STAGINGTABLENAME VARCHAR(128) Sí El nombre de la tabla de registro parael índice de búsqueda de texto.

EVENTTABLENAME VARCHAR(128) No El nombre de la tabla de sucesos parael índice de búsqueda de texto.

OFINDEXTABLENAME VARCHAR(128) No El nombre de la tabla para el índice debúsqueda de texto en OmniFind TextSearch Server for DB2 for i.

UPDATEMINIMUM INTEGER No Número mínimo de entradas de la tablade registro antes de realizar unaactualización incremental del índice debúsqueda de texto.

112 IBM i: OmniFind Text Search Server for DB2 for i

Page 119: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 34. Contenido de la tabla de administración QSYS2.SYSTEXTINDEXES (continuación)

Nombre de columna Tipo de datosCapacidad paranulos Descripción

UPDATEFREQUENCY VARCHAR(512) No Frecuencia de actualización del índicede búsqueda de texto según loespecificado en el procedimientoalmacenado SYSPROC.SYSTS_CREATE.

UPDATEMODE INTEGER No Indica la modalidad de actualizacióndel índice de búsqueda de texto. Elentero 0 (cero) indica la actualizacióninicial del índice de búsqueda de texto.El valor 1 indica actualizacionesincrementales posteriores.

REORGANIZATIONMODE INTEGER No Indica la modalidad de reorganizacióndel índice de búsqueda de texto.

CREATETIME TIMESTAMP No Hora de creación del índice debúsqueda de texto.

LASTUPDATETIME TIMESTAMP Sí Hora de última actualización del índicede búsqueda de texto.

LASTUPDATESTATUS CHAR Sí Indica el estado interno para optimizarel proceso de limpieza después de unaactualización inicial o incremental delíndice de búsqueda de texto. Losvalores típicos son:

v (Nulo) indica que el índice nunca seha actualizado.

v 'C' indica que se ha iniciado unaactualización inicial. Si la modalidadde actualización no es incremental, laactualización inicial sigue en procesoo no ha finalizado.

v 'N' indica que se ha realizadosatisfactoriamente una actualizaciónincremental.

Durante el proceso de actualización seutilizan otros códigos internamente. Elproceso de actualización utiliza dichoscódigos para determinar las acciones derecuperación específicas que puedenrealizarse si la actualización no puederealizarse.

SCHEDULERTASKID INTEGER Sí Reservada para uso futuro.

EXPRESSIONLISTS CLOB (32 K) Sí Reservada para uso futuro.

EXPRESSIONNUMBERS VARBINARY(32) Sí Reservada para uso futuro.

USEREXITFUNCTION VARCHAR(18) Sí Reservada para uso futuro.

REMARKS VARCHAR(2000) Sí Indicaciones realizadas en la opciónCOMMENTS del parámetroopciones-configuración-índice delprocedimiento almacenadoSYSPROC.SYSTS_CREATE.

OmniFind Text Search Server 113

Page 120: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 34. Contenido de la tabla de administración QSYS2.SYSTEXTINDEXES (continuación)

Nombre de columna Tipo de datosCapacidad paranulos Descripción

TABLEMBR VARCHAR(10) Sí El miembro de tabla a partir del cual seha construido el índice de texto. Seutiliza para realizar el seguimiento delmiembro específico que se indexa si elarchivo es multimiembro. Si el valor esnulo, es miembro es el primero y únicode la tabla.

Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.

Tabla de administración QSYS2.SYSTEXTCOLUMNSPuede visualizar información acerca de las columnas de texto de un índice de búsqueda de texto en latabla de administración QSYS2.SYSTEXTCOLUMNS. Cada índice de búsqueda de texto tiene un ID deíndice, nombres de columna de texto y el nombre de esquema de la tabla base.

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTCOLUMNS. Laclave primaria de esta tabla es la columna INDEXID con la columna COLUMNNAME. La clave foráneaes la columna INDEXID.

Tabla 35. Contenido de la tabla de administración QSYS2.SYSTEXTCOLUMNS

Nombre de columna Tipo de datosCapacidadpara nulos Descripción

INDEXID INTEGER No ID de índice del índice de búsqueda detexto generado de forma exclusiva.

COLUMNNAME VARCHAR(128) No Nombre no calificado de la columna detexto.

TABLESCHEMA VARCHAR(128) No Nombre de esquema de la tabla base.

TABLENAME VARCHAR(128) No Nombre no calificado de la tabla base.

LANGUAGE VARCHAR(5) No El idioma que el servidor de búsquedade texto utiliza para el procesolingüístico de los documentos de texto.El valor predeterminado es en_US(inglés).

FUNCTIONSCHEMA VARCHAR(128) Sí El esquema de una función definidapor el usuario utilizada porOMNIFIND para acceder a documentosde texto que se encuentran en unacolumna que no es de un tipo de datossoportado o que están almacenados enotro lugar.

FUNCTIONNAME VARCHAR(18) Sí El nombre de una función definida porel usuario utilizada por OMNIFINDpara acceder a documentos de textoque se encuentran en una columna queno es de un tipo de datos soportado oque están almacenados en otro lugar.

114 IBM i: OmniFind Text Search Server for DB2 for i

Page 121: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 35. Contenido de la tabla de administración QSYS2.SYSTEXTCOLUMNS (continuación)

Nombre de columna Tipo de datosCapacidadpara nulos Descripción

CCSID INTEGER No Identificador de juego de caracterescodificados utilizado para un índice debúsqueda de texto en una columna conun tipo de datos binarios.

FORMAT VARCHAR(30) No El formato de los documentos de textode la columna. Los valores de formatosoportados son TEXT, HTML, XML eINSO.

KEYCOLUMNCOUNT INTEGER No El recuento de columnas de clave parael índice de búsqueda de texto.

KEYCOLUMNNAMES VARCHAR(1200) No Los nombres de columnas de clavepara el índice de búsqueda de texto.

Tabla de administración QSYS2.SYSTEXTSERVERSPuede visualizar dónde están instalados los servidores de búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTSERVERS. La claveexclusiva de esta tabla es la columna SERVERNAME con la columna SERVERPORT. La clave primaria esla columna SERVERID.

Tabla 36. Contenido de la tabla de administración QSYS2.SYSTEXTSERVERS

Nombre de columna Tipo de datosCapacidadpara nulos Descripción

SERVERID INTEGER No ID del servidor de búsqueda de textogenerado de forma exclusiva.

SERVERNAME VARCHAR(128) No Nombre o dirección IP del host delservidor de búsqueda de texto.

SERVERADRINFO VARBINARY(3000) Sí Representación interna de SERVERNAMEy SERVERPORT según lo determinado porel procedimiento almacenadoSYSPROC.SYSTS_START.

SERVERPORT INTEGER No Número de puerto del servidor debúsqueda de texto.

SERVERPATH VARCHAR(512) No Vía de acceso del servidor de búsqueda detexto.

SERVERTYPE INTEGER No Tipo del servidor de búsqueda de texto. Elvalor 0 (cero) indica un servidor debúsqueda de texto IBM i. El valor 1 indicaun servidor de búsqueda de texto Linux. Elvalor 2 indica un servidor de búsqueda detexto Windows.

SERVERAUTHTOKEN VARCHAR(256) No Señal de autenticación para el servidor debúsqueda de texto.

SERVERMASTERKEY VARCHAR(36) No Clave de servidor del servidor debúsqueda de texto.

OmniFind Text Search Server 115

Page 122: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 36. Contenido de la tabla de administración QSYS2.SYSTEXTSERVERS (continuación)

Nombre de columna Tipo de datosCapacidadpara nulos Descripción

SERVERCLASS INTEGER No Clase de servidor del servidor debúsqueda de texto. El valor 0 (cero) indicaun servidor de producción, disponible paraselección automática. El valor 9 indica unservidor de prueba, nunca asignadoautomáticamente.

SERVERSTATUS INTEGER No Indica si el servidor puede utilizarse comoservidor de búsqueda de texto para crearíndices de búsqueda de texto. El valorpredeterminado es 0 (cero), que indica queel servidor puede utilizarse.

ALIASNAME VARCHAR(128) Sí El nombre de alias es exclusivo cuando noes nulo y es sensible a las mayúsculas yminúsculas.

Conceptos relacionados:“Nombre de alias de servidor” en la página 11Puede utilizar un nombre de alias de servidor para asignar un nombre significativo a un servidor.

Tabla de administración QSYS2.SYSTEXTCONFIGURATIONPuede visualizar los parámetros de configuración del índice de búsqueda de texto pasados por elprocedimiento almacenado SYSPROC.SYSTS_CREATE en la tabla de administraciónQSYS2.SYSTEXTCONFIGURATION.

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTCONFIGURATION.La clave primaria es la columna INDEXID con la columna PARAMETER. La clave foránea es la columnaINDEXID.

Tabla 37. Contenido de la tabla de administración QSYS2.SYSTEXTCONFIGURATION

Nombre de columna Tipo de datosCapacidad paranulos Descripción

INDEXID INTEGER No ID de índice del índice de búsqueda detexto generado de forma exclusiva.

PARAMETER VARCHAR(30) No Parámetros especificados para el índicede búsqueda de texto en elprocedimiento almacenadoSYSPROC.SYSTS_CREATE.

VALUE VARCHAR(512) No Valores de los parámetros especificados.

Referencia relacionada:“SYSPROC.SYSTS_CREATE” en la página 19Puede llamar al procedimiento almacenado SYSPROC.SYSTS_CREATE para crear un índice de búsquedade texto. Este procedimiento almacenado habilita una columna de texto para la indexación de búsquedade texto. A continuación, el índice de búsqueda de texto puede utilizarse en consultas SQL que contenganlas funciones CONTAINS o SCORE.

Tabla de administración QSYS2.SYSTEXTSERVERHISTORYPuede ver el historial de los servidores utilizados para el procedimiento almacenadoSYSPROC.SYSTS_DROP visualizando la tabla auxiliar QSYS2.SYSTEXTSERVERHISTORY.

116 IBM i: OmniFind Text Search Server for DB2 for i

Page 123: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

La tabla siguiente muestra el contenido de la tabla de administración QSYS2.SYSTEXTSERVERHISTORY.La clave exclusiva de esta tabla es la columna INDEXID con la columna SERVERID. La clave foránea esla columna INDEXID.

Tabla 38. Contenido de la tabla de administración QSYS2.SYSTEXTSERVERHISTORY

Nombre de columna Tipo de datosCapacidad paranulos Descripción

INDEXID INTEGER No ID de índice de un índice de búsquedade texto creado.

SERVERID INTEGER No ID del servidor donde debe descartarseun índice de búsqueda de texto enSYSPROC.SYSTS_DROP.

Referencia relacionada:“SYSPROC.SYSTS_DROP” en la página 34Puede llamar al procedimiento almacenado SYSPROC.SYSTS_DROP para eliminar un índice de búsquedade texto definido mediante el procedimiento almacenado SYSPROC.SYSTS_CREATE.

Vista Índice de búsqueda de textoSi se crea un índice de búsqueda de texto con SYSTS_CREATE, se creará una vista que representa elíndice. Consultar la vista del índice de búsqueda de texto puede ayudar al usuario a obtener el estado delíndice. El nombre de la vista del índice de búsqueda de texto es el mismo nombre que el nombre deíndice de búsqueda de texto que se ha especificado al crear el índice con SYSTS_CREATE.

La tabla siguiente muestra el contenido de la vista de índice de búsqueda de texto.

Tabla 39. Contenido de la vista creada por SYSTS_CREATE

Nombre de columna Tipo de datos CCSIDCapacidadpara nulos Descripción

TABLESCHEMA VARCHAR(128) 1208 No Nombre de esquema de la tablabase.

TABLENAME VARCHAR(128) 1208 No Nombre no calificado de latabla base.

COLUMNNAME VARCHAR(128) 1208 No Nombre no calificado de lacolumna de texto de la tablabase.

SERVERID INTEGER No ID de servidor exclusivo deSYSTEXTSERVERS.

SERVERNAME VARCHAR(128) 1208 No Nombre no calificado delservidor de búsqueda de texto.

SERVERSTATUS VARCHAR(32) 1208 No v ‘STARTED’ – El servidor estáen ejecución.

v ‘STOPPED’ – El servido estádetenido.

STAGINGTABLENAME VARCHAR(128) 1208 No Nombre no calificado de latabla de registro para el índicede búsqueda de texto.

LASTUPDATETIME TIMESTAMP Sí Hora de última actualizacióndel índice de búsqueda detexto.

OmniFind Text Search Server 117

Page 124: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Tabla 39. Contenido de la vista creada por SYSTS_CREATE (continuación)

Nombre de columna Tipo de datos CCSIDCapacidadpara nulos Descripción

LASTUPDATESTATUS VARCHAR(30) 1208 Sí v ’NEVER UPDATED’ – Elíndice no se ha actualizadoantes.

v ‘UP TO DATE’ – Últimaactualización satisfactoria yno hay ningún cambiopendiente.

v ‘CHANGES PENDING’ –Última actualizaciónsatisfactoria, pero todavíahay nuevos cambios queactualizar.

v ‘FAILED’ – Últimaactualización anómala.

UPDATEMINIMUM INTEGER No Número mínimo de entradasde la tabla de registro antes derealizar una actualizaciónincremental del índice debúsqueda de texto.

UPDATEFREQUENCY VARCHAR(512) 1208 No Frecuencia de actualización delíndice de búsqueda de textosegún lo especificado en elprocedimiento almacenadoSYSPROC.SYSTS_CREATE.

PENDINGCOUNT INTEGER No Indica cuántas filas debenindexarse en el próximoproceso de actualización.

Ampliaciones para indexar y buscar datos no DB2La OmniFind Text Search for DB2 for i proporciona un conjunto adicional de los procedimientosalmacenados para crear, administrar y buscar colecciones de búsqueda de texto.

Visión general de las ampliacionesOmniFind Text Search Server for DB2 for i proporciona un conjunto adicional de procedimientosalmacenados para crear, administrar y buscar en colecciones de búsqueda de texto. Una colección debúsqueda de texto se utiliza para indexar datos asociados con objetos del sistema, como por ejemploarchivos spool de una cola de salida o datos de archivo continuo del sistema de archivos integrado.

Una colección de búsqueda de texto describe uno o más conjuntos de objetos del sistema cuyos datos detexto asociados se indexarán y buscarán. Por ejemplo, una colección puede contener un conjunto deobjetos de todos los archivos spool de la cola de salida QUSRSYS/QEZJOBLOG y/o un conjunto deobjetos de todos los archivos continuos del directorio '/home/alice/text_data'.

La colección de búsqueda de texto a la que se hace referencia en esta documentación no debe confundirsecon un esquema de DB2 (a veces también llamado colección) o una colección de Lucene (parte de laestructura interna de un índice de búsqueda de texto de DB2).

118 IBM i: OmniFind Text Search Server for DB2 for i

Page 125: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Cuando se crea una colección de búsqueda de texto, se crean varios objetos de DB2 en el sistema en unesquema SQL. Los objetos siguientes se crearán en el esquema:v Catálogos para el seguimiento de la configuración de la colección.v Catálogos para el seguimiento de los objetos que se han indexado.v Procedimientos almacenados SQL para administrar y buscar en la colección.v Un índice de búsqueda de texto de DB2 para indexar el texto asociado.

Se suministran procedimientos almacenados para la administración de la colección, la mayoría de loscuales se crean en el esquema.

Puede encontrar una descripción de otras mejoras de OmniFind Text Search Server for DB2 for i en:Mejoras de OmniFind Text Search Server for DB2 for i.

Crear una colección de búsqueda de textoEste procedimiento crea una colección de búsqueda vacía. Se creará un esquema SQL en el sistema paracontener información acerca de la colección. El esquema contendrá objetos DB2 necesarios para rastrear eindexar objetos.

SYSPROC.SYSTS_CRTCOL y SYSPROC.SYSTS_CREATE_COLLECTION

Autorización

SYSTS_CRTCOL y SYSTS_CREATE_COLLECTION se suministrarán con la autorización *EXECUTEotorgada de modo público.

Estos procedimientos no adoptarán ninguna autorización adicional y se ejecutarán bajo el perfil deinvocación.

Para crear una colección de búsqueda de texto, el invocador debe tener:v Autorización para crear un esquema DB2v Autorización/capacidad para crear un índice de búsqueda de texto

Los objetos de DB2 creados como parte de la colección, incluidos los procedimientos almacenadosadministrativos, se crean con la autorización pública *EXCLUDE.

El perfil de usuario que crea la colección es propietario de todos los objetos de la misma. Un usuariopuede otorgar autorización sobre un procedimiento específico a otros usuarios con el fin de permitir queotro usuario administre y busque en la colección de búsqueda de texto.

Sintaxis

�� SYSTS_CRTCOL ( nombre_colección, opciones

, nombre_dispositivo_asp

) ��

Sintaxis

�� SYSTS_CREATE_COLLECTION ( nombre_colección, opciones

, nombre_dispositivo_asp

) ��

El calificador de esquema es SYSPROC.

OmniFind Text Search Server 119

Page 126: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Parámetros

nombre_colecciónNombre de la colección. Este nombre identifica de forma exclusiva la colección y debe ser una serieno nula. Se creará un esquema del nombre especificado para el nombre de la colección para quecontenga los objetos DB2 asociados.

Nota: especifique los nombres entre comillas dobles si los nombres entran en conflicto con palabrasclave SQL o palabras clave de OmniFind que puedan utilizarse.

El parámetro de nombre de colección seguirá las reglas de SQL para los nombres de esquema.

El nombre de colección no debe coincidir con el nombre de un perfil de usuario existente.

El tipo de datos de este parámetro es VARCHAR(128).

opcionesSerie de caracteres que especifica las diversas opciones que están disponibles para este procedimientoalmacenado.

El tipo de datos de este parámetro es VARCHAR(32000).

opciones:

información-predeterminada-texto características-actualización opciones-configuración-índice

información-predeterminada-texto:

LANGUAGE idioma FORMAT formato

información-predeterminada-textoEspecifica el idioma utilizado al procesar documentos y el formato de los documentos de texto dela columna.

LANGUAGE idiomaEspecifica el idioma que OmniFind Text Search Server for DB2 for i utiliza para el procesolingüístico de los documentos de texto. El valor predeterminado es en_US (inglés). Siespecifica AUTO como valor de este parámetro, OmniFind Text Search Server for DB2 for iintentará determinar el idioma.

Importante: Si el idioma de los documentos no es el inglés, no utilice el valorpredeterminado en_US. Cambie el valor al idioma de los documentos; de lo contrario, elproceso lingüístico no funcionará según lo esperado.

FORMAT formatoIdentifica el formato de los documentos de texto que se van a indexar, como por ejemploTEXT o INSO. OmniFind Text Search Server for DB2 for i necesita conocer el formato, o tipode contenido, de los documentos de texto que tiene previsto indexar y en los que va arealizar búsquedas. Si no especifica el parámetro formato, el valor predeterminado es TEXT.

El valor de formato INSO permite a OmniFind Text Search Server for DB2 for i determinar elformato. Si OmniFind Text Search Server for DB2 for i no puede determinar el formato deldocumento, el procedimiento almacenado UPDATE anota un error de documento en elregistro de trabajo durante el proceso.

120 IBM i: OmniFind Text Search Server for DB2 for i

Page 127: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

características-actualización:

NONEUPDATE FREQUENCY < frecuencia-actualización>

características-actualizaciónEspecifica la frecuencia de las actualizaciones automáticas de la colección de búsqueda de texto.El proceso de actualización de una colección de búsqueda de texto implica tanto la indexación delos datos de texto como el rastreo de los objetos del sistema para detectar datos nuevos ocambiados.

UPDATE FREQUENCY frecuencia-actualizaciónEspecifica cuándo deben realizarse actualizaciones automáticas en la colección de búsquedade texto. El valor predeterminado es NONE.

frecuencia-actualización (Formato 1):

� � �

NONED ( * ) H ( * ) M ( * )

, , ,

0..6 0..23 0..590..6 0..23 0..59

NONESi se especifica NONE, no se realizan más actualizaciones de índice. La actualizacióndebe iniciarse manualmente.

D Especifica el día o días de la semana en los que se actualiza el índice. Un asterisco (*)indica todos los días. 0 indica el Domingo.

H Especifica la hora u horas en las que se actualiza el índice. Un asterisco (*) indicatodas las horas.

M Especifica el minuto o minutos en los que se actualiza el índice. No puedeespecificarse un asterisco (*). La frecuencia de actualización mínima es de 5 minutos.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada 30minutos.UPDATE FREQUENCY D(*) H(*) M(0,30)

frecuencia-actualización (Formato 2, cronológico):

< minuto> < hora> <díaDelMes> <mesDelAño> <díaDeLaSemana>

El formato de la opción frecuencia-actualización (cronológica) es una lista de cinco valoresseparados por espacios en blanco. Los cinco valores representan los minutos, horas, días delmes, meses del año y días de la semana empezando por el Domingo.

Si especifica un intervalo de valores o un asterisco (*), puede especificar un valor de recorridoutilizando una barra inclinada (/) al final del intervalo definido.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada cuarto dehora (0,15,30,45) en las horas pares entre las 8 a.m. y las 6:45 p.m. (8-18/2 es equivalente a8,10,12,14,16,18), de Lunes a Viernes todos los meses del año (* * 1-5).0,15,30,45 8-18/2 * * 1-5

minuto Especifica los minutos de la hora en los que debe actualizarse el índice de búsquedade texto. Puede especificar un asterisco (*) para un intervalo de cada 5 minutos o un

OmniFind Text Search Server 121

Page 128: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

entero de 0 a 59. No pueden repetirse valores. La frecuencia de actualización mínimaes de 5 minutos. Un valor de 1, 4 u 8 no es válido.

frecuencia-actualización (minuto):

*/ 0...59

,

0...59 - 0...59/ 0...59

0...59

hora Especifica las horas del día en las que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada hora o un entero de 0 a 23. Nopueden repetirse valores.

frecuencia-actualización (hora):

*/ 0...23

,

0...23 - 0...23/ 0...23

0...23

díaDelMesEspecifica los días del mes en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada día o un entero de 1 a 31. Nopueden repetirse valores.

frecuencia-actualización (díaDelMes):

*/ 1...31

,

1...31 - 1...31/ 1...31

1...31

mesDelAñoEspecifica los meses del año en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada mes o un entero de 1 a 12. Nopueden repetirse valores.

frecuencia-actualización (mesDelAño):

*/ 1...12

,

1...12 - 1...12/ 1...12

1...12

díaDeLaSemanaEspecifica los días de la semana en los que debe actualizarse el índice de búsqueda

122 IBM i: OmniFind Text Search Server for DB2 for i

Page 129: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

de texto. Puede especificar un asterisco (*) para cada día o un entero de 0 a 7. Tanto 0como 7 son valores válidos para el Domingo. No pueden repetirse valores.

frecuencia-actualización (díaDeLaSemana):

*/ 0...7

,

0...7 - 0...7/ 0...7

0...7

opciones-configuración-índice:

INDEX CONFIGURATION ( �

,

opción valor )

opciones-configuración-índiceEspecifica valores adicionales específicos de índice en forma de pares de opción y valor. Debeespecificar los valores tipo serie entre comillas simples. Un comilla simple dentro de un valor tiposerie debe representarse mediante dos comillas simples consecutivas.

CJKSEGMENTATIONEspecifica el método de segmentación que debe utilizarse al indexar documentos paraidiomas CJK (chino, japonés, coreano). Los valores soportados son MORPHOLOGICAL yNGRAM. Si no se especifica el valor CJKSEGMENTATION, se utiliza el valorpredeterminado. El valor predeterminado se especifica en la columna DEFAULTNAME de latabla QSYS2.SYSTEXTDEFAULTS.

SERVEREspecifica el ID o nombre de alias del servidor que debe utilizarse para almacenar el índicede búsqueda de texto. Si se utiliza un ID, el valor es un entero que debe existir en la columnaSERVERID del catálogo QSYS2.SYSTEXTSERVERS. Si se utiliza un nombre de alias, el valores una serie que debe existir en la columna ALIASNAME del catálogoQSYS2.SYSTEXTSERVERS. Si no se especifica SERVER, el valor predeterminado es seleccionarel servidor con menos índices de búsqueda de texto entre los servidores de la tablaQSYS2.SYSTEXTSERVERS en los que el parámetro SERVERSTATUS está establecido en 0(cero), lo que indica que el servidor está disponible.

UPDATEAUTOCOMMITEspecifica la frecuencia con la que se realiza una operación de confirmación al extraerdocumentos durante una actualización de índice. El valor 0 (cero) indica que una operaciónde confirmación sólo se realiza al final del proceso.

El valor debe ser un entero entre 0 (cero) y 2147483647. El valor predeterminado es 100.

Sugerencia de rendimiento: el valor de UPDATEAUTOCOMMIT puede tener un impactosignificativo sobre el rendimiento de las actualizaciones de índice. La operación deconfirmación que tiene lugar con el intervalo especificado garantiza un punto decomprobación coherente desde el que reiniciar la actualización de índice, si se interrumpe. Sinembargo, la confirmación también suspende temporalmente el proceso de actualización.Aumentar el valor de UPDATEAUTOCOMMIT (o establecerlo en 0) puede mejorarsignificativamente el rendimiento de la actualización, especialmente de la inicial. El valor queespecifique debe buscar el equilibrio entre las necesidades de rendimiento y las derecuperabilidad, en función de la frecuencia de las actualizaciones del índice.

OmniFind Text Search Server 123

Page 130: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

nombre_dispositivo_aspEste parámetro, si se especifica y no es nulo, determina la agrupación de almacenamiento auxiliar enla que se crea la colección. Este parámetro está opcionalmente disponible para la coincidencia con laprestación CREATE SCHEMA para crear los objetos de DB2 en un dispositivo ASP específico.

Si se especifica un valor para este parámetro, debe indicar el nombre de una agrupación de discos delgrupo de ASP primario del espacio de nombres actual o una unidad de ASP básica si el espacio denombres es sólo la ASP del sistema.

El tipo de datos de este parámetro es VARCHAR(10).

Ejemplos1. CALL SYSTS_CRTCOL(‘mycollection');

Se crea la colección MYCOLLECTION.2. CALL SYSTS_CRTCOL(‘”mycollection”', “UPDATE FREQUENCY D(*) H(*) M(0)”)

Se crea la colección mycollection (minúsculas sin incluir los delimitadores).La colección de búsqueda de texto tendrá una frecuencia de actualización diaria, al principio de cadahora.

3. CALL SYSTS_CRTCOL(‘ur_collection',‘UPDATE FREQUENCY NONE ‘ || ‘ LANGUAGE zh_CNINDEX CONFIGURATION( ‘ || ‘ CJKSEGMENTATION MORPHOLOGICAL) ‘, ‘23')Se crea la colección UR_COLLECTION.La colección tiene ninguna frecuencia de actualización.El idioma de la colección es chino simplificado, utilizando análisis lingüístico de diccionario(morfológico).El esquema de SQL se crea en la ASP básica #23.Cuando se crea la colección de búsqueda de texto, se crean procedimientos en el esquema de DB2para administrar la colección.

Para crear una colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > Omnifind > Crear colección.

Añadir un conjunto de objetos de datos de archivo spoolEl procedimiento almacenado se encuentra en el esquema de DB2 para añadir un conjunto de objetos dedatos de archivo spool.

Nota: sólo se admiten datos de serie de caracteres SNA (SCS). Los archivos spool que contienen otrostipos de datos no pueden indexarse y provocarán un error a nivel de documento cuando se encuentren.El error se registrará en las anotaciones de trabajo y la indexación continuará con el archivo spoolsiguiente. Puede utilizarse el procedimiento GET_OBJECTS_NOT_INDEXED para determinar quéarchivos de spool no se han incluido en el proceso de indexación.

ADD_SPLF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto. Se suministrará con la autorización *EXECUTE otorgada demodo público.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

124 IBM i: OmniFind Text Search Server for DB2 for i

Page 131: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Sintaxis

Añadir un conjunto de objetos de archivo spool:

�� ADD_SPLF_OBJECT_SET ( biblioteca_cola_salidanulo

, nombre_cola_salidanulo

, nombre_usuarionulo

, �

� nombre_trabajo_calnulo

, usuario_trabajo_calnulo

, número_trabajo_calnulo

, datos_usuarionulo

, �

� indicación_fecha_hora_inicialnulo

, indicación_fecha_hora_finalnulo , id_conjunto_salida

) ��

Las siguientes versiones simplificadas del procedimiento de adición de conjunto de objetos de archivospool pueden utilizarse a efectos de comodidad.

Seleccionar archivos spool sólo por cola de salida:

�� ADD_SPLF_OBJECT_SET ( biblioteca_cola_salidanulo

, nombre_cola_salidanulo

) ��

Seleccionar archivos spool sólo por cola de salida y nombre de usuario:

�� ADD_SPLF_OBJECT_SET ( biblioteca_cola_salidanulo

, nombre_cola_salidanulo

, nombre_usuarionulo

) ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

biblioteca_cola_salidaNombre del sistema para la biblioteca de la cola de salida.

Un valor nulo o una serie vacía indica que se incluirán en el índice las colas de salida de todas lasbibliotecas.

El tipo de datos de este parámetro es VARCHAR(10)

[Consulte los convenios de nombres del sistema]

[Consulte las restricciones adicionales]

nombre_cola_salidaNombre del sistema para el nombre de cola de salida.

Un valor nulo o una serie vacía indica que se incluirá en el índice cualquier cola de salida.

El tipo de datos de este parámetro es VARCHAR(10)

[Consulte los convenios de nombres del sistema]

[Consulte las restricciones adicionales]

nombre_usuarioNombre del sistema para el usuario propietario del archivo spool.

Un valor nulo o una serie vacía indica que no se realizará ningún filtrado sobre el nombre deusuario.

El tipo de datos de este parámetro es VARCHAR(10)

OmniFind Text Search Server 125

Page 132: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

[Consulte los convenios de nombres del sistema]

[Consulte las restricciones adicionales]

nombre-trabajo_calNombre del sistema para la biblioteca de la cola de salida.

Un valor nulo o una serie vacía indica que no se realizará ningún filtrado sobre el nombre de trabajo.

El tipo de datos de este parámetro es VARCHAR(10)

[Consulte los convenios de nombres del sistema]

usuario_trabajo_calNombre del sistema para el nombre de perfil de usuario del trabajo asociada con el archivo spool.

Un valor nulo o una serie vacía indica que no se realizará ningún filtrado sobre el usuario de trabajo.

El tipo de datos de este parámetro es VARCHAR(10)

Es obligatorio un valor no nulo y no vacío para este parámetro si se ha especificadoNOMBRE_TRABAJO_CALIFICADO.

Si NOMBRE_TRABAJO_CALIFICADO es una serie vacía o NULL, este parámetro también debe sernulo o una serie vacía.

[Consulte los convenios de nombres del sistema]

[Consulte las restricciones adicionales]

número_trabajo_calSerie de seis caracteres que representa el número de trabajo. (Debe estar formada por los dígitos 0-9)

Un valor nulo o una serie vacía indica que no se realizará ningún filtrado sobre el número de trabajo.

El tipo de datos de este parámetro es VARCHAR(6)

Es obligatorio un valor no nulo y no vacío para este parámetro si se ha especificadoNOMBRE_TRABAJO_CALIFICADO.

Si NOMBRE_TRABAJO_CALIFICADO es una serie vacía o NULL, este parámetro también debe sernulo o una serie vacía.

[Consulte los convenios de nombres del sistema]

[Consulte las restricciones adicionales]

datos_usuarioSerie de diez caracteres que el usuario asocia con un archivo spool.

Esta serie no se convierte a mayúsculas y debe coincidir exactamente con los datos de usuarioasociados a un archivo spool para que se considere una coincidencia.

Nota: un valor de 'abc' es distinto de 'ABC'

Un valor nulo o una serie vacía indicará que no se realizará ningún filtrado sobre los datos deusuario.

El tipo de datos de este parámetro es VARCHAR(10)

indicación_fecha_hora_inicialValor de indicación de fecha y hora que indica la hora de creación más antigua que se incluirá en lacolección. Los archivos en spool creados antes de esta indicación de fecha y hora no se indexarán.

Puede especificarse un valor NULL para indicar que debe indexarse cualquier archivo spool creadoantes del valor de indicación de fecha y hora final. Si INDICACIÓN_FECHA_HORA_FINAL tambiénes nulo, no se realizarán ningún filtrado sobre la indicación de fecha y hora de creación.

El tipo de datos de este parámetro es TIMESTAMP

126 IBM i: OmniFind Text Search Server for DB2 for i

Page 133: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

indicación_fecha_hora_finalValor de indicación de fecha y hora que indica la hora de creación más reciente que se incluirá en lacolección. Los archivos spool creados después de esta fecha no se indexarán.

Puede especificarse un valor NULL para indicar que debe indexarse cualquier archivo spool creadodespués de la INDICACIÓN_FECHA_HORA_INICIAL. Si INDICACIÓN_FECHA_HORA_INICIALtambién es nulo, no se realizarán ningún filtrado sobre la indicación de fecha y hora de creación.

El tipo de datos de este parámetro es TIMESTAMP

id_conjunto_salidaValor entero de salida que devuelve el ID de conjunto del conjunto de objetos que se ha añadido.

Este valor puede utilizarse para eliminar el conjunto de objetos en un momento posterior.

Este parámetro es opcional.

El tipo de datos de este parámetro es INTEGER

Convenios de denominación del sistema

Los parámetros que requieren nombres del sistema como entrada deben ser nombres del sistema válidos;de lo contrario, se producirá un error. Estos parámetros se procesarán de la misma manera que elanalizador de mandatos procesa los nombres en los mandatos CL. Consulte las Reglas de denominaciónde objetos para obtener más información acerca de los nombres del sistema.

call nick12345.add_splf_object_set('ntl', 'justtext', 'ntl', '', '', '', '', NULL, NULL);

La información de filtro que se pasa al procedimiento será una cola de salida NTL/JUSTTEXT para elusuario NTL (convertido a mayúsculas)

A diferencia de los nombres de SQL, en un nombre del sistema los delimitadores permanecerán en elnombre, pero sólo si es necesario. call nick12345.add_splf_object_set('"ntl"', '"justtext"', '"NTL"', '', '', '', '',NULL, NULL);

La información de filtro pasada a la API será la cola de salida "ntl"/"justtext" para el usuario NTL (sincomillas alrededor del usuario NTL)

Nota: El procedimiento almacenado tiene un límite de diez caracteres en la interfaz y no admite comillasdobles innecesarias que hacen que se supere este límite.

Los nombres del sistema no válidos provocarán un error.

Restricciones adicionalesv Los nombres genéricos no están soportados. En otras palabras, no es posible indexar todas las colas de

salida que empiezan por MYOUT añadiendo un conjunto de objetos para MYOUT*v El nombre de la biblioteca de la cola de salida y el nombre de la cola de salida deben ser ambos nulos

(o una serie vacía) tener ambos nombres del sistema válidos. No es posible filtrar todas las colas desalida de la biblioteca xyz o filtrar todas las colas de salida denominadas 'abc' de cualquier biblioteca.

v Si se especifican un nombre de cola de salida y una biblioteca específicos, dicha cola de salida debeexistir en el momento de añadir el conjunto de objetos. No existe ninguna lógica para impedir lasupresión de la cola de salida en algún momento posterior, pero el conjunto de objetos pasará a estarefectivamente 'vacío'.

v Si tanto NOMBRE_USUARIO como USUARIO_TRABAJO_CALIFICADO son valores no nulos y novacíos, deben ser iguales. Un propietario de archivo spool siempre coincidirá con el usuario de trabajocalificado, y, por lo tanto, estos valores nunca pueden ser diferentes cuando ambos se utilizan comofiltro.

OmniFind Text Search Server 127

Page 134: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Autorizaciones para objetos indexados

Al añadir un conjunto de objetos de archivo spool, considere cuidadosamente los requisitos deautorización para recuperar el texto de los archivos spool. Estas autorizaciones serán un factor a tener encuenta cuando se invoque el procedimiento almacenado UPDATE. Consulte la documentación delprocedimiento almacenado de actualización para obtener más información sobre los requisitos deautorización para objetos indexados.

Ejemplos

Añadir un conjunto de objetos a la colección nick789 para todos los archivos spool de la cola de salidaNTL/MYOUTQ.> call nick789.add_splf_object_set(’NTL’, ’MYOUTQ’);

Añadir un conjunto de objetos a la colección nick123 para indexar todos los archivos spool propiedad delusuario NTL.> call nick123.add_splf_object_set(’’, ’’, ’NTL’);

Añadir un conjunto de objetos a la colección default_search_col para indexar todos los archivos spoolcreados en 2010.> call default_search_col.add_splf_object_set(’’, ’’, ’’, ’’, ’’, ’’, ’’, ’2010-01-01T00:00:00’, ’2011-01-01T00:00:00’);

Añadir un conjunto de objetos a la colección default_search_col para indexar todos los archivos spoolcreados en 2010 con los datos de usuario 'MYAPP':> call default_search_col.add_splf_object_set(’’, ’’, ’’, ’’, ’’, ’’, ’MYAPP’, ’2010-01-01T00:00:00’, ’2011-01-01T00:00:00’);

Para añadir un conjunto de objetos de archivo spool a una colección desde IBM Navigator for i, siga estospasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Propiedades. En la pestaña Objeto,

pulse el botón Añadir colas de salida o Añadir archivos en spool.

Eliminar un conjunto de objetos de datos de archivo spoolEste procedimiento almacenado eliminará un conjunto de objetos de datos de archivo en spool de unacolección de búsqueda de texto.

RMV_SPLF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

Eliminar un conjunto de objetos de archivo spool:

�� >--+-nombre_cola_salida-+--,--+-nombre_usuario-+--,------------------->'-null -------------' '-null -----'

128 IBM i: OmniFind Text Search Server for DB2 for i

Page 135: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

� >--+-nombre_trabajo_cal-+--,--+-usuario_trabajo_cal-+--,------------------->'-null ---------' '-null ---------'

� >--+-número_trabajo_cal-+--,--+-datos_usuario-+--,--------------------->'-null -----------' '-null -----'

� >--+-indicación_fecha_hora_inicial-+--,--+-indicación_fecha_hora_final-+----------------->'-null -----------' '-null ------------'

��

Las siguientes versiones simplificadas del procedimiento de eliminación de conjunto de objetos dearchivo spool pueden utilizarse a efectos de comodidad.

Seleccionar archivos spool sólo por cola de salida:

�� >>-RMV_SPLF_OBJECT_SET--(--+-biblioteca_cola_salida-+--,-------------->'-null ------------'

� >--+-nombre_cola_salida-+--)------------------------------------><'-null -------------'

��

Seleccionar archivos spool sólo por cola de salida y nombre de usuario:

�� >>-RMV_SPLF_OBJECT_SET--(--+-biblioteca_cola_salida-+--,-------------->'-null ------------'

� >--+-nombre_cola_salida-+--,--+-nombre_usuario-+--)------------------><'-null -------------' '-null -----'

��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

biblioteca_cola_salidaNombre del sistema para la biblioteca de la cola de salida.

El tipo de datos de este parámetro es VARCHAR(10).

nombre_cola_salidaNombre del sistema para el nombre de cola de salida.

El tipo de datos de este parámetro es VARCHAR(10).

nombre_usuarioNombre del sistema para el usuario propietario del archivo spool.

El tipo de datos de este parámetro es VARCHAR(10).

nombre_trabajo_calNombre del sistema para la biblioteca de la cola de salida.

El tipo de datos de este parámetro es VARCHAR(10).

usuario_trabajo_calNombre del sistema para el nombre de perfil de usuario del trabajo asociada con el archivo spool.

El tipo de datos de este parámetro es VARCHAR(10).

Es obligatorio un valor no nulo y no vacío para este parámetro si se ha especificadoNOMBRE_TRABAJO_CALIFICADO.

OmniFind Text Search Server 129

Page 136: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Si NOMBRE_TRABAJO_CALIFICADO es una serie vacía o NULL, este parámetro también debe sernulo o una serie vacía.

número_trabajo_calSerie de seis caracteres que representa el número de trabajo. (Debe estar formada por los dígitos 0-9)

El tipo de datos de este parámetro es VARCHAR(6)

Es obligatorio un valor no nulo y no vacío para este parámetro si se ha especificadoNOMBRE_TRABAJO_CALIFICADO.

Si NOMBRE_TRABAJO_CALIFICADO es una serie vacía o NULL, este parámetro también debe sernulo o una serie vacía.

datos_usuarioSerie de diez caracteres que el usuario asocia con un archivo spool.

Esta serie no se convierte a mayúsculas y debe coincidir exactamente con los datos de usuarioasociados a un archivo spool para que se considere una coincidencia.

Nota: un valor de 'abc' es distinto de 'ABC'

El tipo de datos de este parámetro es VARCHAR(10).

indicación_fecha_hora_inicialValor de indicación de fecha y hora que indica la hora de creación más antigua de los archivos spoolañadidos al conjunto de objetos.

El tipo de datos de este parámetro es TIMESTAMP

indicación_fecha_hora_finalValor de indicación de fecha y hora que indica la hora de creación más reciente de los archivos spoolañadidos al conjunto de objetos.

El tipo de datos de este parámetro es TIMESTAMP

Nota: Para obtener más detalles sobre el significado y las restricciones de los parámetros anteriores,consulte la descripción del procedimiento almacenado add_splf_object_set.

Nota sobre el resultado

En los casos siguientes, la eliminación fallará debido a un conjunto de objetos no encontrado:

>El usuario especifica parámetros incorrectos

>Especifica parámetros correspondientes a un conjunto de objetos que se ha suprimido. El usuariorecibirá un mensaje de error que mostrará que no existe un conjunto de objetos con el atributo específico.

QUERY_OBJECT_SET() devuelve la lista de conjuntos de objetos y los parámetros de entrada. El usuariopuede especificar los parámetros de entrada correctos al invocar este procedimiento almacenado paraeliminar el conjunto de objetos.

Ejemplos

Eliminar un conjunto de objetos de la colección nick789 para todos los archivos spool de la cola de salidaNTL/MYOUTQ.> call nick789.rmv_splf_object_set(’NTL’, ’MYOUTQ’);

Eliminar un conjunto de objetos de la colección nick123 para todos los archivos spool propiedad delusuario NTL.> call nick123.rmv_splf_object_set(’’, ’’, ’NTL’);

130 IBM i: OmniFind Text Search Server for DB2 for i

Page 137: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Eliminar un conjunto de objetos de la colección test_col para todos los archivos spool creados en 2010.> call test_col.rmv_splf_object_set(’’, ’’, ’’, ’’, ’’, ’’, ’’, ’2010-01-01T00:00:00’, ’2011-01-01T00:00:00’);

Añadir un conjunto de objetos a la colección default_search_col para indexar todos los archivos spoolcreados en 2010 con los datos de usuario 'MYAPP':> call default_search_col.add_splf_object_set(’’, ’’, ’’, ’’, ’’, ’’, ’MYAPP’, ’2010-01-01T00:00:00’, ’2011-01-01T00:00:00’);

Añadir un conjunto de objetos de datos de archivo continuoEl procedimiento almacenado se encuentra en el esquema de DB2 para añadir un conjunto de objetos dedatos de archivo continuo.

ADD_IFS_STMF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

Este procedimiento permite a un usuario añadir un conjunto de objetos de archivos continuos (STMF) alsistema de archivos integrado (IFS).

Añadir un conjunto de objetos para datos de archivo continuo (archivos continuos en IFS):

�� ADD_IFS_STMF_OBJECT_SET ( serie-expresión_stmf, id_conjunto_salida

) ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

serie-expresión_stmfEste parámetro contiene una vía de acceso absoluta a un directorio que contiene los archivos que seindexarán.

Debe ser un directorio válido (de tipo *DIR) de un sistema de archivos que sea accesible. se indexaránlos objetos de archivo continuo (tipo *STMF) de este directorio. El nombre de vía de acceso debe serabsoluto y no debe contener expresiones regulares.

El tipo de datos de este parámetro es VARCHAR(32000)

Se indexan los archivos continuos del directorio especificado.v NO se siguen enlaces simbólicosv NO se procesan subdirectoriosv Los nombres de vía de acceso no debe estar delimitados; los caracteres tales como '*' ', ?", etc. no

tienen ningún significado especial y no deben especificarse con escapes.v Los nombres de vía de acceso pueden o no ser sensibles a las mayúsculas y minúsculas,

dependiendo del atributo del sistema de archivos.

Se realizará una comprobación al añadir el conjunto de objetos para verificar que no exista ya unconjunto duplicado en la colección de búsqueda de texto. Esta comprobación no considera las vías deacceso equivalentes como duplicadas.

OmniFind Text Search Server 131

Page 138: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

En otras palabras, las siguientes vías de acceso podrían representar el mismo directorio, pero seconsiderarán conjuntos de objetos exclusivos; es más, los objetos de esos conjuntos se indexaránvarias veces como objetos exclusivos./dir1/DIR2/dir1//DIR2///DIR1/DIR2/ (si el sistema de archivos es sensible a las mayúsculas y minúsculas)/dir1/DIR2/../DIR2etc.

id_conjunto_salidaValor entero de salida que devuelve el ID de conjunto del conjunto de objetos que se ha añadido. Estevalor puede utilizarse para eliminar el conjunto de objetos en un momento posterior.

Este parámetro es opcional.

El tipo de datos de este parámetro es INTEGER.

Consideraciones especiales para el proceso de actualización

Sistemas de archivos inexistentes:

Si un directorio no se puede localizar durante una operación de actualización, los archivos asociados aese directorio no se eliminarán del índice. Esto evita la reindexación innecesaria de documentos cuandoun sistema de archivos se desmonta y luego vuelve a montarse.

Si estos archivos deben eliminarse del índice, existen varias opciones:v Emita el procedimiento almacenado de eliminación de conjunto de objetos en el conjunto de objetos de

archivo continuo IFS. Esta acción eliminará todos los documentos asociados con el conjunto deobjetos.�

v Emita el procedimiento almacenado REPRIME en la colección. Todos los datos se eliminarán del índicey sólo se reindexarán los archivos que puedan localizarse.

v Cree el directorio como un directorio vacío y emita la actualización

Conversión de CCSID

Si el formato (FORMAT) de la colección es TEXT:v El atributo CCSID del archivo se utiliza para convertir los datos extraídos del archivo a UTF-8 para la

indexación. El atributo CCSID del archivo debe ser correcto para que el archivo pueda indexarsecorrectamente.

Si el formato (FORMAT) de la colección es INSO:v Los datos del archivo se extraerán del archivo y se enviarán al servidor de búsqueda de texto para el

proceso. No se realizará ninguna conversión de juego de caracteres y el atributo CCSID del archivo seignorará. El servidor de búsqueda de texto utilizará su proceso de texto enriquecido para determinar elformato y la codificación del documento. Puede utilizarse para indexar archivos de texto enriquecido(como PDF) o archivos de texto normales. En el caso de algunos documentos de texto sin formato,puede que el servidor de búsqueda de texto no pueda determinar la codificación del documento con laconfianza suficiente para indexar los datos. Esto es más probable para documentos muy pequeños,pero también puede producirse en documentos grandes que utilice una amplia gama de caracteres. Siel formato y la codificación del archivo no pueden determinarse, el archivo no se indexará y seregistrará un error de documento.

Autorizaciones para objetos indexados

Al añadir un conjunto de objetos de archivo continuo IFS, considere cuidadosamente los requisitos deautorización para leer los archivos continuos. Las autorizaciones adoptadas no se aceptan al acceder a losdatos del archivo continuo. Además, se ejecutan actualizaciones planificadas bajo el perfil de usuario

132 IBM i: OmniFind Text Search Server for DB2 for i

Page 139: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

propietario del índice. Consulte la documentación del procedimiento almacenado de actualización paraobtener más información sobre los requisitos de autorización para objetos indexados.

ADD_IFS_STMF_OBJECT_SET_WITH_SUBDIR

La sintaxis y los requisitos de autorización de este procedimiento almacenado son similares a los deADD_IFS_STMF_OBJECT_SET. Con este procedimiento almacenado, el usuario puede añadir undirectorio como un conjunto de objetos a la colección. Todos los archivos y subdirectorios bajo estedirectorio se indexarán recursivamente.

Ejemplo

Añadir un conjunto de objetos a MYCOLLECTION para indexar todos los archivos continuos deldirectorio IFS '/home/ntl/stmf':> CALL MYCOLLECTION.ADD_IFS_STMF_OBJECT_SET(’/home/ntl/stmf’);

Añadir un conjunto de objetos a MYCOLLECTION para indexar todos los archivos continuos ysubdirectorios del directorio IFS '/home/ntl/stmf':> CALL MYCOLLECTION.ADD_IFS_STMF_OBJECT_SET_WITH_SUBDIR(’/home/ntl/stmf’);

Para añadir una vía de acceso de IFS a una colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Propiedades. En la pestaña Objeto,

pulse el botón Añadir vía de acceso de IFS. Seleccione Incluir subdirectorios para añadir todos lossubdirectorios bajo la vía de acceso de IFS especificada.

Eliminar un conjunto de objetos de datos de archivo continuoEl procedimiento almacenado se encuentra en el esquema de DB2® para eliminar un conjunto de objetosde datos de archivo continuo.

RMV_IFS_STMF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

Este procedimiento permite a un usuario eliminar un conjunto de objetos de archivos continuos (STMF)del sistema de archivos integrado (IFS).

Eliminar un conjunto de objetos para datos de archivo continuo (archivos continuos en IFS):

�� >>-RMV_IFS_STMF_OBJECT_SET -(--serie_expresión_stmf----------->< ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

OmniFind Text Search Server 133

Page 140: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Parámetros

serie-expresión_stmfEste parámetro es una vía de acceso absoluta a un directorio que es el atributo del conjunto deobjetos.

No es necesario que sea un directorio válido de un sistema de archivos que sea accesible, ya que elusuario podría suprimir la vía de acceso, pero el conjunto de objetos seguiría existiendo. El nombrede vía de acceso debe ser absoluto y no debe contener expresiones regulares.

El tipo de datos de este parámetro es VARCHAR(32000)

Nota: Nota para el nombre de vía de acceso de directorio especificada:v Los nombres de vía de acceso no debe estar delimitados; los caracteres tales como '*' ', ?", etc. no

tienen ningún significado especial y no deben especificarse con escapes.v Los nombres de vía de acceso pueden o no ser sensibles a las mayúsculas y minúsculas,

dependiendo del atributo del sistema de archivos.

Dado que ADD_IFS_STMF_OBJECT_SET no considera las vías de acceso equivalentes como unconjunto de objetos duplicado, el usuario debe indicar exactamente la misma vía de acceso queADD_IFS_STMF_OBJECT_SET añadido al intentar eliminar el conjunto de objetos específico.

En otras palabras, las siguientes vías de acceso podrían representar el mismo directorio, pero seconsiderarán conjuntos de objetos diferentes./dir1/DIR2/dir1//DIR2///DIR1/DIR2/ (si el sistema de archivos es sensible a las mayúsculas y minúsculas)/dir1/DIR2/../DIR2etc.

RMV_IFS_STMF_OBJECT_SET_WITH_SUBDIR

Este procedimiento almacenado puede eliminar un conjunto de objetos que incluya archivos IFS desubdirectorio. Este conjunto de objetos puede añadirse mediante el procedimiento

ADD_IFS_STMF_OBJECT_SET_WITH_SUBDIR.

La sintaxis, requisitos de autorización y parámetros de este procedimiento almacenado son similares a losde RMV_IFS_STMF_OBJECT_SET. Si el usuario añade una vía de acceso IFS a un conjunto de objetos consubdirectorio y a un conjunto de objetos sin subdirectorios, el uso de este procedimiento sólo eliminará elconjunto de objetos con subdirectorio.

Nota sobre el resultado

En los casos siguientes, la eliminación fallará debido a un conjunto de objetos no encontrado:

>El usuario especifica una vía de acceso IFS incorrecta

>Especifica una vía de acceso IFS correspondiente a un conjunto de objetos que se ha suprimido. Elusuario recibirá un mensaje de error que mostrará que no existe un conjunto de objetos con el atributoespecífico.

QUERY_OBJECT_SET() devuelve la lista de conjuntos de objetos y los parámetros de entrada. El usuariopuede especificar los parámetros de entrada correctos al invocar este procedimiento almacenado paraeliminar el conjunto de objetos.

134 IBM i: OmniFind Text Search Server for DB2 for i

Page 141: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Ejemplos

Eliminar un conjunto de objetos de MYCOLLECTION, cuyo directorio de IFS es '/home/ntl/stmf':> CALL MYCOLLECTION.RMV_IFS_STMF_OBJECT_SET(’/home/ntl/stmf’);

Eliminar un conjunto de objetos de MYCOLLECTION que incluye todos los archivos continuos ysubdirectorios del directorio de IFS '/home/ntl/stmf':> CALL MYCOLLECTION.RMV_IFS_STMF_OBJECT_SET_WITH_SUBDIR(’/home/ntl/stmf’);

Añadir un conjunto de objetos de archivo físico de origenmultimiembroEl procedimiento almacenado se encuentra en el esquema de DB2® para añadir un conjunto de objetos dearchivo físico de origen multimiembro.

ADD_SRCPF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

Este procedimiento permite a un usuario añadir un conjunto de objetos de archivo físico de origenmultimiembro (MMPF).

Añadir un conjunto de objetos de archivo físico de origen multimiembro:>>-ADD_SRCPF_OBJECT-SET -(---SRCPF_LIB----------->>-------- SRCPF_NAME ------)-------------------------------------><

>--+------------------+--)-------------------------------------><’-,-- OUT_SETID -’

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetro

SRCPF_LIBEste parámetro indica una biblioteca absoluta que contiene los archivos físicos de origen que seindexarán.

Debe ser un nombre de biblioteca válido en el sistema. Se indexarán los objetos de archivo físico deorigen multimiembro de esta biblioteca. El nombre de biblioteca debe ser absoluto y no debe contenerexpresiones regulares.

El tipo de datos de este parámetro es VARCHAR(10)

SRCPF_NAMEEste parámetro indica un archivo físico de origen absoluto que puede tener uno o más miembros; seindexarán todos los miembros del archivo físico de origen. El nombre de archivo debe ser absoluto yno debe contener expresiones regulares.

OmniFind Text Search Server 135

Page 142: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Nota: si el archivo físico de origen se suprime después de añadir el conjunto de objetos a la colecciónde búsqueda de texto, la llamada posterior al procedimiento almacenado UPDATE lo detectará, y elresultado de la búsqueda no contendrá los miembros de ese archivo físico de origen.

*ALLSRCPF

Si se especifica *ALLSRCPF como nombre del archivo físico de origen, indicará que los archivosfísicos de origen de SRCPF_LIB se indexarán al actualizar el índice.

Nota: Si el usuario especifica *ALLSRCPF como nombre de archivo físico de origen al añadir unconjunto de objetos, también se permite añadir otro PF específico bajo la misma biblioteca que unconjunto de objetos. Esto NO conducirá a un error de duplicación.

El tipo de datos de este parámetro es VARCHAR(10).

OUT_SETIDValor entero de salida que devuelve el ID de conjunto del conjunto de objetos que se ha añadido. Estevalor puede utilizarse para eliminar el conjunto de objetos en un momento posterior.

Este parámetro es opcional.

El tipo de datos de este parámetro es INTEGER.

Restricciones adicionalesv Se realizará una comprobación al añadir el conjunto de objetos para verificar que no exista ya un

conjunto duplicado en la colección de búsqueda de texto.v Al añadir un conjunto de objetos de archivo físico de origen a una colección de búsqueda de texto,

OmniFind verifica que el archivo físico de origen existe. Si el archivo físico de origen no existe, sedevuelve un mensaje de error y el conjunto de objetos no se añade.

v Si el archivo especificado no es un archivo físico de origen, la llamada al procedimiento falla con unerror.

Autorizaciones para objetos indexados

Al añadir un conjunto de objetos de archivo físico de origen de varios miembros, considerecuidadosamente los requisitos de autorización para leer los archivos. Las autorizaciones adoptadas no seaceptan al acceder a los datos del archivo físico de origen. Además, se ejecutan actualizacionesplanificadas bajo el perfil de usuario propietario del índice. Consulte la documentación del procedimientoalmacenado de actualización para obtener más información sobre los requisitos de autorización paraobjetos indexados.

Ejemplos

Añadir un conjunto de objetos a MYCOLLECTION para indexar el archivo físico de origen multimiembroQCSRC de la biblioteca ISVSQLLP:> CALL MYCOLLECTION.ADD_SRCPF_OBJECT_SET(’ISVSQLLP’,’QCSRC’);

Añadir un conjunto de objetos a MYCOLLECTION para indexar el archivo físico de origen multimiembroQCSRC de la biblioteca ISVSQLLP, y esperar la obtención del ID de conjunto (setid).> create variable setid int default 0;> CALL MYCOLLECTION.ADD_SRCPF_OBJECT_SET(’ISVSQLLP’,’QCSRC’,setid);

Añadir un conjunto de objetos a MYCOLLECTION para indexar todos los archivos físicos de origenmultimiembro de la biblioteca ISVSQLLP:> CALL MYCOLLECTION.ADD_SRCPF_OBJECT_SET(’ISVSQLLP’,’*ALLSRCPF’);

Para añadir un conjunto de objetos de archivo físico de origen a una colección desde IBM® Navigator fori, siga estos pasos.

136 IBM i: OmniFind Text Search Server for DB2 for i

Page 143: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas >OmniFind > Listade colecciones.

2. Pulse la colección con el botón derecho del ratón y seleccione Propiedades. En la pestaña Objeto,pulse el menú desplegable, seleccione Añadir archivo físico de origen y, a continuación, pulseAñadir.

Eliminar un conjunto de objetos de archivo físico de origenmultimiembroEl procedimiento almacenado se encuentra en el esquema de DB2® para eliminar un conjunto de objetosde archivo físico de origen multimiembro.

RMV_SRCPF_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

Este procedimiento permite a un usuario eliminar un conjunto de objetos de archivo físico de origenmultimiembro (MMPF).

Eliminar un conjunto de objetos de archivo físico de origen multimiembro:>>-RMV_SRCPF_OBJECT-SET -(---SRCPF_LIB----------->>-------- SRCPF_NAME ------)-------------------------------------><

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetro

SRCPF_LIBEste parámetro indica una biblioteca absoluta que contiene los archivos físicos de origen.

El nombre de biblioteca debe ser absoluto y no debe contener expresiones regulares.

El tipo de datos de este parámetro es VARCHAR(10).

SRCPF_NAMEEste parámetro indica un archivo físico de origen absoluto que puede tener uno o más miembros; seindexarán todos los miembros del archivo físico de origen. El nombre de archivo debe ser absoluto yno debe contener expresiones regulares.

*ALLSRCPF

Si se especifica *ALLSRCPF como nombre del archivo físico de origen, indica que se eliminará elconjunto de objetos de todos los archivos físicos de origen de SRCPF_LIB.

El tipo de datos de este parámetro es VARCHAR(10).

Nota sobre el resultado

En los casos siguientes, la eliminación fallará debido a un conjunto de objetos no encontrado:>El usuario especifica un valor incorrecto de SRCPF_LIB o SRCPF_NAME>Especifica un conjunto de objetos SRCPF_LIB/SRCPF_NAME correspondiente que se ha eliminado anteriormente.

OmniFind Text Search Server 137

Page 144: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

El usuario recibirá un mensaje de error que mostrará que no existe un conjunto de objetos con el atributoespecífico.

QUERY_OBJECT_SET() devuelve la lista de conjuntos de objetos y los parámetros de entrada. El usuariopuede especificar los parámetros de entrada correctos al invocar este procedimiento almacenado paraeliminar el conjunto de objetos.

Ejemplos

Eliminar un conjunto de objetos de MYCOLLECTION para el archivo físico de origen multimiembroQCSRC de la biblioteca ISVSQLLP:> CALL MYCOLLECTION.RMV_SRCPF_OBJECT_SET(’ISVSQLLP’,’QCSRC’);

Eliminar un conjunto de objetos de MYCOLLECTION para todos los archivos físicos de origenmultimiembro de la biblioteca ISVSQLLP:> CALL MYCOLLECTION.RMV_SRCPF_OBJECT_SET(’ISVSQLLP’,’*ALLSRCPF’);

Eliminar un conjunto de objetosEste procedimiento almacenado eliminará un conjunto de objetos de una colección de búsqueda de texto.

REMOVE_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� REMOVE_OBJECT_SET ( setid ) ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

setidEl ID de conjunto que se ha obtenido al añadir el conjunto de objetos.

El ID de conjunto de objetos también puede obtenerse utilizando el procedimiento almacenadoQUERY_OBJECT_SET después de añadir el conjunto de objetos.

El tipo de datos de este parámetro es INTEGER.

Ejemplos

Eliminar el conjunto de objetos #1 de la colección MYCOLLECTION.> CALL MYCOLLECTION.remove_object_set(1)

Para eliminar un conjunto de objetos de una colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.

138 IBM i: OmniFind Text Search Server for DB2 for i

Page 145: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

3. Pulse la colección con el botón derecho del ratón y seleccione Propiedades. En la pestaña Objeto,pulse el botón Eliminar.

Actualizar la colecciónEste procedimiento almacenado actualiza la colección. Cuando se llama inicialmente, se indexan todos losobjetos incluidos en los conjuntos de objetos de la colección. Cuando se llama a este procedimientoalmacenado después de completar una actualización inicial satisfactoria, todos los objetos cambiados seactualizan en el índice. El procedimiento no devuelve el control al interlocutor hasta que ha finalizado laactualización.

UPDATE

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� UPDATE ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

Ninguno

Requisitos de autorización sobre objetos indexados

Las actualizaciones planificadas se ejecutan bajo el perfil propietario de la colección de búsqueda detexto.

Las llamadas a los procedimientos almacenados UPDATE se ejecutan bajo el perfil que invoca elprocedimiento.

Es recomendable que tanto el propietario del índice como el perfil que administra el índice tenganautorización para leer los datos de texto de todos los objetos indexados en la colección. Si no se tiene laautorización suficiente, pueden producirse resultados imprevisibles.

La autorización adoptada no se respetará necesariamente para rastrear objetos y extraer texto de esosobjetos.

Los problemas de autorización durante el proceso de actualización pueden provocar que la actualizaciónfalle, o que no se indexen documentos individuales.

EjemplosCALL MYCOLLECTION.UPDATE;

Para actualizar el índice de colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.

OmniFind Text Search Server 139

Page 146: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

3. Pulse la colección con el botón derecho del ratón y seleccione Actualizar.

Volver a llenar la colección de búsqueda de textoEl procedimiento almacenado REPRIME borra la colección y, a continuación, realiza una actualizacióninicial. El procedimiento no devuelve el control al interlocutor hasta que ha finalizado la actualización.

REPRIME

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� REPRIME ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

Ninguno

Consideraciones sobre la autorización de Reprime para objetos indexados

Las actualizaciones planificadas se ejecutan bajo el perfil propietario de la colección de búsqueda detexto.

Las llamadas a los procedimientos almacenados REPRIME se ejecutan bajo el perfil que invoca elprocedimiento.

Es recomendable que tanto el propietario del índice como el perfil que administra el índice tenganautorización para leer los datos de texto de todos los objetos indexados en la colección. Si no se tiene laautorización suficiente, pueden producirse resultados imprevisibles.

La autorización adoptada no se respetará necesariamente para rastrear objetos y extraer texto de esosobjetos.

Los problemas de autorización durante el proceso de actualización pueden provocar que la actualizaciónfalle, o que no se indexen documentos individuales.

EjemplosCALL MYCOLLECTION.REPRIME;

Para volver a llenar la colección de búsqueda de texto desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Volver a preparar.

140 IBM i: OmniFind Text Search Server for DB2 for i

Page 147: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Buscar en la colecciónEste procedimiento permite a un usuario buscar en una colección de búsqueda de texto los objetos quecoinciden con una búsqueda.

SEARCH

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� SEARCH ( serie_búsqueda, opciones_búsqueda

, número_de_resultados

) ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

serie_búsquedaUn parámetro de serie que contiene la expresión de búsqueda.

Nota: esta expresión no puede estar formada sólo por espacios en blanco ni ser una serie vacía.

Consulte la sintaxis de argumentos de búsqueda del manual de consulta de OmniFind para obtenerdetalles.

El tipo de datos de este parámetro es VARCHAR(32700).

opciones_búsquedaIdentifica una constante de tipo serie que especifica las opciones de argumento de búsqueda en vigorpara la función.

El tipo de datos de este parámetro es VARCHAR(32700).

opciones_búsqueda:

, QUERYLANGUAGE = valor , RESULTLIMIT = valor , SYNONYM = OFFON

QUERYLANGUAGEEspecifica el idioma de la consulta. El valor puede ser cualquiera de los códigos de idiomasoportados. Si no se especifica la opción QUERYLANGUAGE, el valor predeterminado es el valorde idioma del índice de búsqueda de texto utilizado cuando se invoca la función. Si el valor deidioma del índice de búsqueda de texto es AUTO, el valor predeterminado paraQUERYLANGUAGE es en_US.

RESULTLIMITProporciona una pista al optimizador de DB2 con respecto al número de filas del conjunto deresultados que se espera utilizar. El optimizador puede elegir un plan diferente para devolvermenos filas desde el procedimiento SEARCH. El optimizador también puede ignorar esta opciónsi no se va a obtener una ventaja de rendimiento durante la búsqueda.

OmniFind Text Search Server 141

Page 148: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

SYNONYMEspecifica si debe utilizarse un diccionario de sinónimos asociado con el índice de búsqueda detexto. Puede añadir un diccionario de sinónimos a una colección mediante la herramienta desinónimos. OFF es el valor predeterminado.

número_de_resultadosValor entero de salida que devuelve el número de documentos del resultado de la búsqueda.

El tipo de datos de este parámetro es VARCHAR(32700).

CONJUNTO DE RESULTADOS DEVUELTO

El procedimiento de búsqueda devuelve un conjunto de resultados con coincidencias para la expresión debúsqueda.

El conjunto de resultados contiene las columnas siguientes:OBJTYPE CHAR(10) CCSID 1208OBJATTR CHAR(10) CCSID 1208CONTAINING_OBJECT_LIB CHAR(10) CCSID 1208CONTAINING_OBJECT_NAME CHAR(10) CCSID 1208OBJECTINFOR XMLMODIFY_TIME TIMESTAMPSCORE DOUBLE

OBJTYPE - El tipo de objeto del sistema para este resultado (*STMF, *OUTQ, etc).

OBJATR - El atributo del objeto del sistema que ha coincidido con la expresión de búsqueda (*SPLF,*DATA, etc.).

CONTAINING_OBJECT_LIB - La biblioteca del objeto del sistema coincidente.

CONTAINING_OBJECT_NAME - El nombre del objeto del sistema coincidente.

OBJECTINFOR - Un valor XML que describe la información de ubicación de los datos indexadoscoincidentes con la expresión serie_búsqueda. A continuación se muestra un ejemplo de ubicación dearchivo spool:<Spool_File xmlns=”http://www.ibm.com/xmlns/prod/db2textsearch/obj1”>

<job_name>QPADEV000Cjob_name>QPADEV000C><job_user_name>USERAjob_user_name>USERA><spool_file_name>DSXSVRALSspool_file_name>DSXSVRALS><spool_file_number>1spool_file_number>1><job_system_name>ZD21BP1job_system_name>ZD21BP1><create_date>1081027create_date>1081027><create_time>035554create_time>035554>

</Spool_File>

A continuación se muestra un ejemplo de ubicación de archivo continuo IFS:<Stream_File xmlns=”http://www.ibm.com/xmlns/prod/db2textsearch/obj1”>

<file_path>/home/usera/a.txt</file_path></Spool_File>

A continuación se muestra un ejemplo de ubicación de miembro de archivo físico:<Source_Physical_File_Member xmlns=”http://www.ibm.com/xmlns/prod/db2textsearch/obj1>

<file_library>MYLIB</file_library><file_name>MYPF</file_name><member_name>member1</member_name>

</Source_Physical_File_Member>

DB2 proporciona una serie de métodos para convertir un valor XML a otros formatos para que lasaplicaciones puedan acceder a los datos. Una posibilidad es crear una hoja de estilo XSL y utilizar la

142 IBM i: OmniFind Text Search Server for DB2 for i

Page 149: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

función XSLTRANSFORM. Otra posibilidad es crear un esquema anotado para los valores XML y utilizarel procedimiento XDBDECOMPXML para llenar las tablas relacionales con los valores. El manual deconsulta de SQL de Information Center contiene detalles sobre ambas funciones.

MODIFY_TIME - Indicación de fecha y hora que indica la hora de la última modificación del objeto queestá en la colección. Esta indicación de fecha y hora nunca será más reciente que el proceso de la últimaactualización.

SCORE - El resultado es mayor que 0 pero menor que 1 si los datos de texto indexados contienen unacoincidencia con los criterios de búsqueda especificados por el argumento de búsqueda. Cuanto mayorsea la frecuencia con la que se encuentre una coincidencia, mayor será el valor del resultado. Si lacolumna no contiene una coincidencia, el resultado es 0.

El conjunto de resultados se ordena por puntuación descendente.

Ejemplos1. call MYCOLLECTION.search('big bad wolf');2. call MYCOLLECTION.search('big bad wolf', 'QUERYLANGUAGE=en_US');

Para buscar en la colección desde IBM Navigator for i, siga estos pasos.1. Desde IBM Navigator for i, expanda Gestión de IBM i > Sistema > Buscar.2. Seleccione Buscar.

Consultar información de conjunto de objetosEste procedimiento permite a un usuario ver la lista de conjuntos de objetos que están contenidos dentrode la colección.

QUERY_OBJECT_SET

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� QUERY_OBJECT_SET ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

Ninguno

CONJUNTO DE RESULTADOS DEVUELTO

El procedimiento devuelve un conjunto de resultados que contiene una fila para cada conjunto de objetos:SETID INTEGERSETSTATE CHAR(10) CCSID 1208LASTREFRESHTIME TIMESTAMPADDOBJSETSQL VARCHAR(2000) CCSID 1208

OmniFind Text Search Server 143

Page 150: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

SETID - Identificador exclusivo asignado a cada conjunto de objetos. Este identificador puede utilizarseen el procedimiento almacenado remove_object_set para eliminar el conjunto de objetos de la colección.

SETSTATE - Estado del conjunto de objetos. Está reservado para una ampliación futura y siempre es'ACTIVE'.

LASTREFRESHTIME - La última vez que el conjunto de objetos se ha renovado para reflejar los objetosque se encuentran realmente en el sistema.

ADDOBJSETSQL - Llamada al procedimiento almacenado SQL que se ha utilizado para añadir esteconjunto de objetos.

EjemplosCall MYCOLLECTION.QUERY_OBJECT_SET;

Para consultar la información de conjunto de objetos de una colección desde IBM Navigator for i, sigaestos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Propiedades. Pulse la pestaña Objeto.

Recuperar estado de objetos de índicesEste procedimiento devuelve el estado de todos los objetos de la colección de búsqueda de texto.

GET_OBJECT_STATUS

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� GET_OBJECT_STATUS ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

Ninguno

CONJUNTO DE RESULTADOS DEVUELTO

El procedimiento devuelve un conjunto de resultados que contiene una fila para cada conjunto de objetos:OBJECT XMLSTATUS_TIMESTAMP TIMESTAMPSTATUS_CODE INTEGERTEXT_STATUS VARCHAR(100)

OBJECT - La información de ubicación del objeto en el índice, que coincide con el formato devuelto porla búsqueda para la columna OBJECTINFOR.

144 IBM i: OmniFind Text Search Server for DB2 for i

Page 151: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

STATUS_TIMESTAMP - Si el estado del objeto es INDEXED, esta es la indicación de fecha y hora demodificación del objeto en el índice. En otras palabras, los cambios realizados en el objeto antes de estahora se reflejan en el índice de búsqueda de texto. Para todos los demás valores de estado, esta indicaciónde fecha y hora es la hora en que el estado se ha registrado en el índice. Por ejemplo: si el estado delobjeto es ERROR, este es el momento en que se ha registrado el error.

STATUS_CODE - Valor numérico que representa el estado de este objeto:0 = El objeto se ha indexado y no se han detectado cambios en elobjeto.10 = El objeto se encuentra actualmente en proceso de indexación.20 = Se han detectado cambios en el objeto.30 = El objeto se ha indexado, pero se ha producido un aviso durante el proceso de indexación.40 = Un error ha impedido la indexación del objeto.

Estos valores permiten criterios de selección más complejos. Es decir, recuperar todos los objetos noactuales del índice se puede expresar como STATUS_CODE > 0.

Nota: el estado de los objetos que se encuentran en proceso de actualización o estaban en proceso deactualización cuando se canceló una actualización puede diferir de la realidad. Es posible que un objetoinforme de que hay cambios pendientes, cuando en realidad el texto que se debe indexar ya ha sidoenviado al servidor. También es posible que el estado de un documento sea 'INDEXED', pero el objetopuede no estar en condiciones de búsqueda hasta un punto de confirmación futuro del proceso deactualización. STATUS_CODE reflejará la realidad cuando el procedimiento almacenado de actualizaciónse haya completado.

El conjunto de resultados se ordena (por orden descendente) por código de estado.

TEXT_STATUS - La versión de texto del código de estado:0 = INDEXED10 = INDEXING20 = CHANGES PENDING30 = WARNING40 = ERROR

EjemplosCall MYCOLLECTION.GET_OBJECT_STATUS;

Obtener objetos no indexadosEste procedimiento devuelve los objetos que no están indexados en la colección de búsqueda de texto.

GET_OBJECTS_NOT_INDEXED

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� GET_OBJECTS_NOT_INDEXED ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

OmniFind Text Search Server 145

Page 152: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Parámetros

Ninguno

CONJUNTO DE RESULTADOS DEVUELTO

El procedimiento devuelve un conjunto de resultados que contiene una fila para cada conjunto de objetos:OBJECT XMLSTATUS_TIMESTAMP TIMESTAMPSTATUS_CODE INTEGERTEXT_STATUS VARCHAR(100)

OBJECT - La información de ubicación del objeto en el índice, que coincide con el formato devuelto porla búsqueda para la columna OBJECTINFOR.

STATUS_TIMESTAMP - Si el estado del objeto es INDEXED, esta es la indicación de fecha y hora demodificación del objeto en el índice. En otras palabras, los cambios realizados en el objeto antes de estahora se reflejan en el índice de búsqueda de texto. Para todos los demás valores de estado, esta indicaciónde fecha y hora es la hora en que el estado se ha registrado en el índice. Por ejemplo: si el estado delobjeto es ERROR, este es el momento en que se ha registrado el error.

STATUS_CODE - Valor numérico que representa el estado de este objeto:0 = El objeto se ha indexado y no se han detectado cambios en el objeto.10 = El objeto se encuentra actualmente en proceso de indexación.20 = Se han detectado cambios en el objeto.30 = El objeto se ha indexado, pero se ha producido un aviso durante el proceso de indexación.40 = Un error ha impedido la indexación del objeto.

Estos valores permiten criterios de selección más complejos. Es decir, recuperar todos los objetos noactuales del índice se puede expresar como STATUS_CODE > 0.

Nota: el estado de los objetos que se encuentran en proceso de actualización o estaban en proceso deactualización cuando se canceló una actualización puede diferir de la realidad. Es posible que un objetoinforme de que hay cambios pendientes, cuando en realidad el texto que se debe indexar ya ha sidoenviado al servidor. También es posible que el estado de un documento sea 'INDEXED', pero el objetopuede no estar en condiciones de búsqueda hasta un punto de confirmación futuro del proceso deactualización. STATUS_CODE reflejará la realidad cuando el procedimiento almacenado de actualizaciónse haya completado.

El conjunto de resultados se ordena (por orden descendente) por código de estado.

TEXT_STATUS - La versión de texto del código de estado:0 = INDEXED10 = INDEXING20 = CHANGES PENDING30 = WARNING y ERROR40 = WARNING y ERROR

EjemplosCall MYCOLLECTION.GET_OBJECTS_NOT_INDEXED;

Recuperar estado de colecciónEste procedimiento devuelve el estado de la colección de búsqueda de texto.

STATUS

146 IBM i: OmniFind Text Search Server for DB2 for i

Page 153: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis

�� STATUS ��

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

Ninguno

CONJUNTO DE RESULTADOS DEVUELTO

El procedimiento devuelve un conjunto de resultados que contiene una fila para cada conjunto de objetos:SERVERID INTEGERSERVERNAME VARCHAR(128)SERVERSTATUS VARCHAR(32)LASTUPDATETIME TIMESTAMPLASTUPDATESTATUS VARCHAR(30)UPDATEFREQUENCY VARCHAR(512)

SERVERID - ID de servidor del índice de búsqueda de texto.

SERVERNAME - Nombre de host o dirección IP del servidor de búsqueda de texto.

SERVERSTATUS - Indica si el servidor puede utilizarse como servidor de búsqueda de texto para crearíndices de búsqueda de texto. El valor predeterminado es 0 (cero), que indica que el servidor puedeutilizarse.

LASTUPDATETIME - Hora de última actualización del índice de búsqueda de texto.

LASTUPDATESTATUS - Indica el último estado de actualización del índice de búsqueda de texto.NEVER UPDATED - El índice de búsqueda de texto nuca se ha actualizado.UP TO DATE - El índice de búsqueda de texto está actualizado.CHANGES PENDING - Hay cambios pendientes. El usuario necesita actualizar elíndice para actualizar el índice de búsqueda de texto.FAILED - El índice de búsqueda de texto se ha actualizado de forma anómala por últimavez.

UPDATEFREQUENCY - Frecuencia de actualizaciones automáticas en el índice de búsqueda de texto.

EjemplosCall MYCOLLECTION.STATUS;

Para recuperar el estado de colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.

OmniFind Text Search Server 147

Page 154: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Eliminar una colección de búsqueda de textoEste procedimiento elimina una colección de búsqueda de texto del sistema.

SYSPROC.SYSTS_DRPCOL y SYSPROC.SYSTS_DROP_COLLECTION

Autorización

Los procedimientos almacenados SYSPROC.SYSTS_DRPCOL y SYSPROC.SYSTS_DROP_COLLECTION sesuministran con la autorización pública *EXECUTE.

No se adopta ninguna autorización y el procedimiento se ejecuta bajo el perfil del usuario.

El usuario debe tener autorización para eliminar el esquema SQL (incluidos todos los objetos quecontiene) para poder eliminar correctamente la colección.

Sintaxis

�� SYSTS_DRPCOL ( nombre_colección ) ��

Sintaxis

�� SYSTS_DROP_COLLECTION ( nombre_colección ) ��

El calificador de esquema es SYSPROC.

Parámetros

nombre_colecciónEl nombre de la colección suministrado en el procedimiento almacenadoSYSTS_CREATE_COLLECTION.

El tipo de datos de este parámetro es VARCHARE(128).

Ejemplos

CALL SYSPROC.SYTS_DRPCOL(‘”MYCOLLECTION”')

Otros ejemplos utilizando procedimientos de colección de búsqueda de texto> CALL SYSPROC.SYSTS_CREATE_COLLECTION(’MYCOLLECTION’, ’FORMAT TEXT’);

De forma predeterminada, siempre se llama a los procedimientos almacenados asociados con la nueva colección.> SET SCHEMA MYCOLLECTION> SET PATH MYCOLLECTION

Añadir un conjunto de objetos para todos los archivos spool propiedad del usuario ZOOKEEPER> CALL.ADD_SPLF_OBJECT_SET(’’, ’’, ’ZOOKEEPER’);

Añadir un conjunto de objetos para todos los archivos spool creados el 06/14/2010> CALL ADD_SPLF_OBJECT_SET(’’, ’’, ’’, ’’, ’’, ’’, ’’, ’2010-06-14T00:00:00’, ’2010-06-15T00:00:00’);

Añadir un conjunto de objetos para todos los archivos continuos del directorio de IFS ’/home/zookeeper’> CALL ADD_IFS_STMF_OBJECT_SET(’/home/zookeeper’);

Actualizar la colección> CALL UPDATE;

Buscar ’Leones AND tigres AND osos’

148 IBM i: OmniFind Text Search Server for DB2 for i

Page 155: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

> CALL SEARCH(’leones AND tigres AND osos’);

Otorgar autorización a otro usuario (SEARCHER)> GRANT EXECUTE ON SPECIFIC PROCEDURE SEARCH1 TO SEARCHER

Eliminar la colección> CALL SYSPROC.SYSTS_DROP_COLLECTION(’MYCOLLECTION’)

Para eliminar una colección de búsqueda de texto desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Lista de colecciones.3. Pulse la colección con el botón derecho del ratón y seleccione Suprimir.

Modificar una colección de búsqueda de textoPuede llamar a este procedimiento almacenado para modificar los atributos de una colección que se hacreado mediante SYSPROC.SYSTS_CREATE_COLLECTION. Sólo se cambiarán los atributos especificadosexplícitamente en este procedimiento. Todos los demás atributos del índice permanecerán sin cambios.

Este procedimiento resulta de utilidad si necesita cambiar los atributos de la colección, como por ejemplola frecuencia de actualización, una vez que ésta se ha creado.

ALTER_COLLECTION

Autorización

Este procedimiento almacenado se crea con la autorización pública *EXCLUDE y es propiedad delcreador de la colección de búsqueda de texto.

El procedimiento adoptará la autorización del perfil del propietario de la colección de búsqueda de texto.Puede otorgarse autorización a otros usuarios para permitirles ejecutar el procedimiento.

Sintaxis>>-ALTER_COLLECTION--(--opciones-----------------------------><

El calificador de esquema es el nombre de la colección de búsqueda de texto.

Parámetros

opcionesSerie de caracteres que especifica las diversas opciones que están disponibles para este procedimientoalmacenado.

El tipo de datos de este parámetro es VARCHAR(32000).

opciones:

características-actualización

características-actualización:

NONEUPDATE FREQUENCY < frecuencia-actualización>

OmniFind Text Search Server 149

Page 156: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

características-actualizaciónEspecifica la frecuencia de las actualizaciones automáticas de la colección de búsqueda de texto. Elproceso de actualización de una colección de búsqueda de texto implica tanto la indexación de losdatos de texto como el rastreo de los objetos del sistema para detectar datos nuevos o cambiados.

UPDATE FREQUENCY frecuencia-actualizaciónEspecifica cuándo deben realizarse actualizaciones automáticas en la colección de búsqueda detexto. El valor predeterminado es NONE.

frecuencia-actualización (Formato 1):

� � �

NONED ( * ) H ( * ) M ( * )

, , ,

0..6 0..23 0..590..6 0..23 0..59

NONESi se especifica NONE, no se realizan más actualizaciones de índice. La actualizacióndebe iniciarse manualmente.

D Especifica el día o días de la semana en los que se actualiza el índice. Un asterisco (*)indica todos los días. 0 indica el Domingo.

H Especifica la hora u horas en las que se actualiza el índice. Un asterisco (*) indica todaslas horas.

M Especifica el minuto o minutos en los que se actualiza el índice. No puede especificarseun asterisco (*). La frecuencia de actualización mínima es de 5 minutos.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada 30 minutos.UPDATE FREQUENCY D(*) H(*) M(0,30)

frecuencia-actualización (Formato 2, cronológico):

< minuto> < hora> <díaDelMes> <mesDelAño> <díaDeLaSemana>

El formato de la opción frecuencia-actualización (cronológica) es una lista de cinco valores separadospor espacios en blanco. Los cinco valores representan los minutos, horas, días del mes, meses delaño y días de la semana empezando por el Domingo.

Si especifica un intervalo de valores o un asterisco (*), puede especificar un valor de recorridoutilizando una barra inclinada (/) al final del intervalo definido.

Ejemplo: este ejemplo especifica que la actualización de índice debe ejecutarse cada cuarto dehora (0,15,30,45) en las horas pares entre las 8 a.m. y las 6:45 p.m. (8-18/2 es equivalente a8,10,12,14,16,18), de Lunes a Viernes todos los meses del año (* * 1-5).0,15,30,45 8-18/2 * * 1-5

minuto Especifica los minutos de la hora en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para un intervalo de cada 5 minutos o un enterode 0 a 59. No pueden repetirse valores. La frecuencia de actualización mínima es de 5minutos. Un valor de 1, 4 u 8 no es válido.

frecuencia-actualización (minuto):

150 IBM i: OmniFind Text Search Server for DB2 for i

Page 157: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

*/ 0...59

,

0...59 - 0...59/ 0...59

0...59

hora Especifica las horas del día en las que debe actualizarse el índice de búsqueda de texto.Puede especificar un asterisco (*) para cada hora o un entero de 0 a 23. No puedenrepetirse valores.

frecuencia-actualización (hora):

*/ 0...23

,

0...23 - 0...23/ 0...23

0...23

díaDelMesEspecifica los días del mes en los que debe actualizarse el índice de búsqueda de texto.Puede especificar un asterisco (*) para cada día o un entero de 1 a 31. No puedenrepetirse valores.

frecuencia-actualización (díaDelMes):

*/ 1...31

,

1...31 - 1...31/ 1...31

1...31

mesDelAñoEspecifica los meses del año en los que debe actualizarse el índice de búsqueda de texto.Puede especificar un asterisco (*) para cada mes o un entero de 1 a 12. No puedenrepetirse valores.

frecuencia-actualización (mesDelAño):

*/ 1...12

,

1...12 - 1...12/ 1...12

1...12

díaDeLaSemanaEspecifica los días de la semana en los que debe actualizarse el índice de búsqueda detexto. Puede especificar un asterisco (*) para cada día o un entero de 0 a 7. Tanto 0 como7 son valores válidos para el Domingo. No pueden repetirse valores.

OmniFind Text Search Server 151

Page 158: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

frecuencia-actualización (díaDeLaSemana):

*/ 0...7

,

0...7 - 0...7/ 0...7

0...7

Ejemplos1. CALL MYCOLLECTION.ALTER_COLLECTION(‘UPDATE FREQUENCY H(0) M(0) D(*)');

Se modifica el valor de frecuencia de actualización de la colección MYCOLLECTION. La colección debúsqueda de texto tendrá una frecuencia de actualización diaria a las 00:00 horas.

2. CALL MYCOLLECTION.ALTER_COLLECTION(‘UPDATE FREQUENCY NONE');Esta colección de búsqueda de texto se cambia a no planificada.

Para modificar una colección desde IBM Navigator for i, siga estos pasos.1. En IBM Navigator for i, expanda Gestión de IBM i > Sistema > Todas las tareas.2. En el panel derecho, seleccione Sistema > OmniFind > Modificar colección.

Consideraciones sobre las ASP independientes para las coleccionesde búsqueda de textoConsideraciones sobre las IASP para una colección de búsqueda de texto.

Pueden crearse colecciones de búsqueda de texto en un entorno de agrupaciones de almacenamientoauxiliar (ASP) independientes con las siguientes restricciones:1. Si un grupo de ASP independientes está asociado con la hebra actual, la colección debe residir en una

ASP del grupo de ASP independientes. No es posible administrar una colección de búsqueda de textoen la ASP del sistema o en una ASP básica de usuario mientras la hebra está establecida en un grupode ASP independientes. Es posible buscar en una colección que existe en la ASP del sistema o en unaASP básica de usuario, pero dado que ese índice no puede incluir datos del grupo de ASPindependientes, sólo se incluirán los objetos que son accesibles cuando el grupo de ASP es *NONE.

2. Una colección de búsqueda de texto puede indexar cualquier objeto visible desde el espacio denombres de grupo de ASP de la colección.

3. Si un conjunto de objetos incluye objetos que existen en el espacio de nombres del grupo de ASP, perono en el propio grupo, el tiempo de indexación puede ser significativo si el grupo de ASPindependientes se mueve a otro sistema. Por ejemplo: si se crea una colección en la ASPindependiente 33 para indexar todos los archivos de spool del sistema, y el grupo de ASP se conmutaa una máquina diferente, todos los archivos de spool de la máquina antigua que no se encuentren enel grupo de ASP se eliminarán del índice, y se añadirán todos los archivos de spool de la máquinanueva que no estén en el índice.

Consideraciones sobre la copia de seguridad y restauración decolecciones de búsqueda de textoSalvar y restaurar una colección de búsqueda de texto.

Puede realizarse una copia de seguridad y restaurarse una colección de búsqueda de texto salvando yrestaurando la biblioteca del esquema creado para la colección. Durante la restauración, se iniciará deforma asíncrona una actualización. La actualización rastreará los objetos del sistema y volverá a llenar elíndice.

152 IBM i: OmniFind Text Search Server for DB2 for i

Page 159: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Es necesario poder restaurar el índice de búsqueda de texto contenido en la colección para que lacolección pueda utilizarse. Deben tenerse en cuenta estas consideraciones para restaurar un índice debúsqueda de texto:v Todos los productos necesarios deben estar instalados.v El servidor de búsqueda de texto debe estar disponible.

Mensajes y códigosPuede visualizar los mensajes y códigos de retorno SQL de OmniFind Text Search for DB2 for i. Losmensajes se listan por orden numérico.

Mensajes de OmniFindPuede visualizar los mensajes de OmniFind correspondientes a OmniFind Text Search for DB2 for i. Losmensajes se listan por orden numérico.

Se añaden mensajes al archivo de mensajes de OmniFind (QDBTSLIB/QOMFMSGF) para los erroressiguientes.

Tabla 40. Mensajes de OmniFind

Número Tipo Mensaje

OMF0011 Información Índice de búsqueda de texto restaurado con opciones de configuración diferentes.

OMF0012 Aviso El tipo FORMAT para el índice que se crea no es XML. Las búsquedas XML noestán soportadas.

OMF0334 Error El objeto ''{0}''.''{1}'' que ha especificado no está soportado. Un índice de búsquedade texto sólo puede crearse sobre una tabla SQL, un alias SQL o un miembrosimple de un archivo físico.

OMF0358 Error El usuario actual no tiene autoridad suficiente para realizar la operaciónsolicitada.

OMF0359 Error La restauración ha fallado. El servidor de texto para el índice de texto no estádisponible.

SQLCODE -0196 La columna &3 de &1 en &2 nopuede descartarse.

Explicación: Se ha intentado descartar la columna &3.La columna no puede descartarse porque una vista, undesencadenante o un índice depende de la columna yse ha especificado RESTRICT, o la columna forma partede la clave de partición.

Respuesta del Usuario: Especifique CASCADE en lasentencia ALTER TABLE para descartar la columna ylas vistas, restricciones, desencadenantes e índices quedependen de ella. Si la columna forma parte de la clavede partición, especifique DROP PARTITIONING en lasentencia ALTER TABLE para eliminar elparticionamiento de la tabla. Intente de nuevo lapetición.

SQLSTATE: 42817

SQLCODE -5003 No puede realizarse la operaciónbajo control de compromiso.

Explicación: Las operaciones siguientes no puedenrealizarse bajo control de compromiso especificando

COMMIT(*CHG), COMMIT(*CS) o COMMIT(*ALL):

v Sentencia DROP SCHEMA.

v Sentencia GRANT o REVOKE sobre un objeto quetiene un poseedor de autoridad.

v Sentencia CREATE en modalidad de denominaciónSQL de un objeto que tiene un poseedor deautoridad.

v DROP de un índice de búsqueda de texto.

Estas operaciones no pueden comprometerse niretrotraerse.

Respuesta del Usuario: EspecifiqueCOMMIT(*NONE) e intente de nuevo la sentencia.

SQLSTATE: 42922

SQLCODE -20423 Se ha producido un error duranteel proceso de búsqueda de texto.

Explicación: Se ha producido un error durante elproceso de búsqueda de texto de una funciónCONTAINS o SCORE. El error se ha producido en el

SQLCODE -0196 • SQLCODE -20423

OmniFind Text Search Server 153

Page 160: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

servidor servidor al utilizar el índice de búsqueda detexto nombre-índice por el código de razón código-razón.El testo que describe el problema es: texto.

servidor: nombre o dirección IP del host y puerto delservidor de búsqueda de texto en el que se hadetectado el error.

nombre-índice: nombre del índice utilizado en el procesode búsqueda de texto.

Nota: incluya el esquema y un punto en el nombre deíndice en una única señal.código-razón: código de razón devuelto por OmniFindText Search Server for DB2 for i.

texto: texto devuelto por OmniFind Text Search Serverfor DB2 for i.

Acción del Sistema: La sentencia no puede procesarse.

Respuesta del Usuario: Póngase en contacto con eladministrador del sistema para comprobar queOmniFind Text Search Server for DB2 for i estécorrectamente instalado.

SQLSTATE: 38H10

Referencia relacionada:

“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizarbúsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento debúsqueda. La función devuelve un resultado que indicasi se ha encontrado una coincidencia.

“SCORE” en la página 43Puede utilizar la función SCORE para realizarbúsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento debúsqueda. La función devuelve una puntuación derelevancia que mide hasta que punto un documentocoincide con la consulta.

SQLCODE -20424 El soporte de búsqueda de textono está disponible por la razóncódigo-razón.

Explicación: Se ha detectado un problema en una delas tablas administrativas de búsqueda de texto. Elcódigo de razón es código-razón.

1 Una de las tablas de administración debúsqueda de texto no se ha encontrado(QSYS2.SYSTEXTINDEXES,QSYS2.SYSTEXTCOLUMNS oQSYS2.SYSTEXTSERVERS).

3 El soporte de búsqueda de texto no se hainiciado.

4 La columna STATUS de la tabla

QSYS2.SYSTEXTSERVERS tiene un valor de 1,que indica que el soporte de búsqueda detexto se ha detenido.

7 No hay ningún OmniFind Text Search Serverfor DB2 for i definido.

Acción del Sistema: La sentencia no puede procesarse.

Respuesta del Usuario: Póngase en contacto con eladministrador del sistema para asegurarse de que elsoporte para la búsqueda de texto esté correctamenteconfigurado en el sistema.

SQLSTATE: 38H11

Referencia relacionada:

“Tabla de administración QSYS2.SYSTEXTSERVERS” enla página 115Puede visualizar dónde están instalados los servidoresde búsqueda de texto mediante la tabla deadministración QSYS2.SYSTEXTSERVERS.

“Tabla de administración QSYS2.SYSTEXTINDEXES”en la página 112Puede visualizar información acerca de cada índice debúsqueda de texto en la tabla de administraciónQSYS2.SYSTEXTINDEXES. Cada índice de búsqueda detexto tiene un nombre, un nombre de esquema y unnombre de colección asociada en el servidor debúsqueda de texto.

“Tabla de administración QSYS2.SYSTEXTCOLUMNS”en la página 114Puede visualizar información acerca de las columnas detexto de un índice de búsqueda de texto en la tabla deadministración QSYS2.SYSTEXTCOLUMNS. Cadaíndice de búsqueda de texto tiene un ID de índice,nombres de columna de texto y el nombre de esquemade la tabla base.

SQLCODE -20425 Búsqueda de texto no permitidapara la columna nombre-columna.

Explicación: Una función de búsqueda de textoCONTAINS o SCORE ha especificado la columnanombre-columna de la tabla nombre-tabla en el esquemade tabla. No existe un índice de texto para estacolumna, por lo que el proceso de búsqueda de textono puede ejecutarse.

Acción del Sistema: La sentencia no puede procesarse.

Respuesta del Usuario: Compruebe que la columna yla tabla estén registradas en OmniFind Text SearchServer for DB2 for i.

SQLSTATE: 38H12

Referencia relacionada:

“CONTAINS” en la página 40Puede utilizar la función CONTAINS para realizarbúsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento debúsqueda. La función devuelve un resultado que indicasi se ha encontrado una coincidencia.

SQLCODE -20424 • SQLCODE -20425

154 IBM i: OmniFind Text Search Server for DB2 for i

Page 161: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

“SCORE” en la página 43Puede utilizar la función SCORE para realizarbúsquedas en un índice de búsqueda de textoutilizando criterios especificados en un argumento debúsqueda. La función devuelve una puntuación derelevancia que mide hasta que punto un documentocoincide con la consulta.

SQLCODE -20426 Ya se está ejecutando unprocedimiento de administración debúsqueda de texto conflictivo.

Explicación: En este índice ya se está ejecutando unprocedimiento administrativo de búsqueda de textoconflictivo, como por ejemplo una actualización.

Acción del Sistema: La sentencia no puede procesarse.

Respuesta del Usuario: Invoque de nuevo elprocedimiento almacenado de administración una vezfinalizado el procedimiento almacenado en ejecución.

SQLSTATE: 38H13

SQLCODE -20427 Se ha producido un error duranteel procedimiento administrativo debúsqueda de texto.

Explicación: Se ha producido un error durante unprocedimiento administrativo de búsqueda de texto. Elcódigo de razón es código-razón. El testo devuelto es:texto. El texto del error describe el problema.

Acción del Sistema: La sentencia CALL falla con esteSQLCODE.

Respuesta del Usuario: Solucione el problemaindicado por el error e invoque de nuevo elprocedimiento almacenado administrativo.

SQLSTATE: 38H14

CPF32fa Operación no permitida en el índice debúsqueda de texto &2 de &1.

Explicación: Se ha intentado una operación que noestá soportada para un índice de búsqueda de texto.Los índices de búsqueda de texto no permiten algunasoperaciones que están permitidas en los índices y vistastradicionales de DB2.

Si se ha intentado suprimir el índice, la operaciónpuede haber fallado debido a que el control decompromiso estaba activo.

Respuesta del Usuario: Realice las operacionesadministrativas de búsqueda de texto mediante losprocedimientos almacenados SQL incluidos enOmniFind Text Search Server for DB2 for i.

Para obtener más información acerca de los índices debúsqueda de texto y las restricciones que se les aplican,consulte la documentación de Information Center:http://www.ibm.com/systems/i/infocenter/

CPF32fb La operación en el índice de búsquedade texto &2 de &1 no ha podidorealizarse.

Explicación: Se ha intentado una operación en elíndice de búsqueda de texto &2 de &1. La operaciónsolicitada no es válida actualmente debido al código derazón &3; los códigos de razón y sus significados sonlos siguientes:

1. Un producto necesario no está instalado.

2. El servidor de búsqueda de texto solicitado &4 noestá disponible o no está definido.

3. Se ha intentado una restauración del índice, pero elíndice ya existe. El índice existente no ha podidomodificarse para que coincida con el índice salvado.

4. Un objeto dependiente &5 en &6 de tipo &7 noexistía.

5. Un objeto &5 en &6 de tipo &7 no estabadisponible.

6. La agrupación de almacenamiento auxiliar (ASP)para la hebra actual no coincide con la ASP delíndice de búsqueda de texto.

7. Ya existe un índice de búsqueda de texto para lacolumna &8, tabla &5 de la biblioteca &6.

Respuesta del Usuario: Corrija el problema e intentede nuevo la operación.

Para obtener más información acerca de los índices debúsqueda de texto, consulte la documentación deInformation Center: http://www.ibm.com/systems/i/infocenter/

CPI321E Archivo &1 de la biblioteca &2 diferido.

Explicación: El archivo &1 de la biblioteca &2 se hadiferido durante esta solicitud de restauración con el IDde diferimiento especificado &4. El archivo se hadiferido debido al código de razón &3. Los códigos derazón son:

1. El archivo base &5 de la biblioteca &6 no existíacuando se estaba creando &1 para la restauración.

2. El archivo &1 no ha podido crearse por alguna otrarazón que no es la ausencia de un archivo base.Consulte los mensajes anteriores para determinarpor qué ha fallado la creación del archivo.

3. Uno o varios de los miembros del archivo &1 nohan podido crearse. Consulte los mensajesanteriores para determinar por qué ha fallado lacreación de los miembros.

4. El archivo representa un índice de búsqueda detexto y el objeto de programa bajo licencia necesariono existe en el sistema.

5. El archivo representa un índice de búsqueda detexto y el índice no ha podido volver a crearse.

Respuesta del Usuario: Para el código de razón 1:restaure el archivo base que falta o utilice el mandatoRestaurar objetos diferidos (RSTDFROBJ) especificando

SQLCODE -20426 • CPI321E

OmniFind Text Search Server 155

Page 162: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

el mismo ID de diferimiento (parámetro DFRID) &4 encualquiera de los mandatos utilizados.

Para los códigos de razón 2 y 3: corrija las razones dela anomalía de creación y luego utilice el mandatoRestaurar objetos diferidos (RSTDFROBJ) especificandoel mismo ID de diferimiento (parámetro DFRID) &4 enel mandato.

Para el código de razón 5: consulte los mensajesanteriores del registro de trabajo, corrija los errores yluego utilice el mandato Restaurar objetos diferidos(RSTDFROBJ) especificando el mismo ID dediferimiento (parámetro DFRID) &4 en el mandato.

Información relacionada:

Restaurar objetos diferidos (RSTDFROBJ)

Información sobre licencia de código y exención de responsabilidadIBM le otorga una licencia de copyright no exclusiva para utilizar todos los ejemplos de código deprogramación, a partir de los que puede generar funciones similares adaptadas a sus necesidadesespecíficas.

SUJETO A LAS GARANTÍAS ESTATUTARIAS QUE NO PUEDAN EXCLUIRSE, IBM Y LOSDESARROLLADORES Y SUMINISTRADORES DE PROGRAMAS DE IBM NO OFRECEN NINGUNAGARANTÍA NI CONDICIÓN, YA SEA IMPLÍCITA O EXPLÍCITA, INCLUIDAS, PERO SIN LIMITARSE AELLAS, LAS GARANTÍAS O CONDICIONES IMPLÍCITAS DE COMERCIALIZACIÓN, ADECUACIÓNA UN PROPÓSITO DETERMINADO Y NO VULNERACIÓN CON RESPECTO AL PROGRAMA O ALSOPORTE TÉCNICO, SI EXISTE.

BAJO NINGUNA CIRCUNSTANCIA, IBM Y LOS DESARROLLADORES O SUMINISTRADORES DEPROGRAMAS DE IBM SE HACEN RESPONSABLES DE NINGUNA DE LAS SIGUIENTESSITUACIONES, NI SIQUIERA EN CASO DE HABER SIDO INFORMADOS DE TAL POSIBILIDAD:1. PÉRDIDA DE DATOS O DAÑOS CAUSADOS EN ELLOS;2. DAÑOS ESPECIALES, ACCIDENTALES, DIRECTOS O INDIRECTOS, O DAÑOS ECONÓMICOS

DERIVADOS;3. PÉRDIDAS DE BENEFICIOS, COMERCIALES, DE INGRESOS, CLIENTELA O AHORROS

ANTICIPADOS.

ALGUNAS JURISDICCIONES NO PERMITEN LA EXCLUSIÓN O LA LIMITACIÓN DE LOS DAÑOSDIRECTOS, ACCIDENTALES O DERIVADOS, POR LO QUE PARTE DE LAS LIMITACIONES OEXCLUSIONES ANTERIORES, O TODAS ELLAS, PUEDE NO SER PROCEDENTE EN SU CASO.

156 IBM i: OmniFind Text Search Server for DB2 for i

Page 163: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Avisos

Esta información se ha escrito para productos y servicios ofrecidos en Estados Unidos de América.

Es posible que IBM no ofrezca en otros países los productos, servicios o características que se describenen este documento. El representante local de IBM IBM le puede informar acerca de los productos yservicios que actualmente están disponibles en su localidad. Cualquier referencia a un producto,programa o servicio de IBM no pretende indicar ni implicar que sólo pueda utilizarse dicho producto,programa o servicio de IBM. En su lugar, se puede utilizar cualquier producto, programa o serviciofuncionalmente equivalente que no infrinja ningún derecho de propiedad intelectual de IBM. Noobstante, es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto,programa o servicio que no sea de IBM.

IBM puede tener patentes o solicitudes de patentes pendientes que cubran la materia descrita en estedocumento. La posesión de este documento no le confiere ninguna licencia sobre dichas patentes. Puedeenviar las consultas sobre licencias, por escrito, a la siguiente dirección:

IBM Director of LicensingIBM CorporationNorth Castle DriveArmonk, NY 10504-1785Estados Unidos de América

Para las consultas relacionadas con información de doble byte (DBCS), póngase en contacto con eldepartamento de propiedad intelectual de IBM de su país o envíe las consultas, por escrito, a:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.1623-14, Shimotsuruma, Yamato-shiKanagawa 242-8502 Japan

El párrafo siguiente no se aplica al Reino Unido ni a ningún otro país donde estas disposiciones seanincompatibles con la legislación local: INTERNATIONAL BUSINESS MACHINES CORPORATIONPROPORCIONA ESTA DOCUMENTACIÓN "TAL CUAL" SIN GARANTÍAS DE NINGÚN TIPO, NIEXPLÍCITAS NI IMPLÍCITAS, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LAS GARANTÍAS DE NOVULNERABILIDAD, COMERCIALIZACIÓN O IDONEIDAD PARA FINES CONCRETOS. Algunaslegislaciones no contemplan la declaración de limitación de responsabilidad, ni implícitas ni explícitas, endeterminadas transacciones, por lo que cabe la posibilidad de que esta declaración no se aplique en sucaso.

Esta información puede contener imprecisiones técnicas o errores tipográficos. La información incluida eneste documento está sujeta a cambios periódicos, que se incorporarán en nuevas ediciones de lapublicación. IBM puede realizar en cualquier momento mejoras o cambios en los productos o programasdescritos en esta publicación sin previo aviso.

Las referencias hechas en esta publicación a sitios Web que no son de IBM se proporcionan únicamentepor cortesía y de ningún modo deben interpretarse como promoción de dichos sitios Web. Los materialesde estos sitios Web no forman parte de los materiales de este producto IBM, y el usuario será responsabledel uso que se haga de estos sitios Web.

IBM puede utilizar o distribuir la información que se le proporcione de la forma que considere adecuada,sin incurrir en ninguna obligación con el cliente.

© Copyright IBM Corp. 2002, 2014 157

Page 164: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Los licenciatarios de este programa que deseen obtener información acerca del mismo con el fin de: (i)intercambiar la información entre programas creados independientemente y otros programas (incluidoeste) y (ii) utilizar mutuamente la información que se ha intercambiado, deben ponerse en contacto con:

IBM CorporationSoftware Interoperability Coordinator, Department YBWA3605 Highway 52 NRochester, MN 55901Estados Unidos de América

Esta información puede estar disponible, sujeta a los términos y condiciones pertinentes, e incluir enalgunos casos el pago de una cantidad.

El programa bajo licencia que se describe en este documento y todo el material bajo licencia disponiblelos proporciona IBM bajo los términos de las Condiciones Generales de IBM, Acuerdo Internacional deProgramas Bajo Licencia de IBM o cualquier acuerdo equivalente entre las partes.

Los datos de rendimiento incluidos aquí se determinaron en un entorno controlado. Por lo tanto, losresultados que se obtengan en otros entornos operativos pueden variar significativamente. Algunasmediciones pueden haberse realizado en sistemas que estén en fase de desarrollo y no existe ningunagarantía de que esas mediciones vayan a ser iguales en los sistemas disponibles en el mercado. Además,es posible que algunas mediciones se hayan estimado mediante extrapolación. Los resultados realespueden variar. Los usuarios de este documento deben verificar los datos aplicables a su entornoespecífico.

La información concerniente a productos que no son de IBM se ha obtenido de los suministradores dedichos productos, de sus anuncios publicados o de otras fuentes de información pública disponibles. IBMno ha probado esos productos y no puede confirmar la exactitud del rendimiento, de la compatibilidad nide ninguna otra declaración relacionada con productos que no sean de IBM. Las consultas acerca de lasprestaciones de los productos que no son de IBM deben dirigirse a los suministradores de talesproductos.

Todas las declaraciones relativas a la dirección o intención futura de IBM están sujetas a cambios oanulación sin previo aviso y representan únicamente metas y objetivos.

Todos los precios de IBM mostrados son precios de minoristas sugeridos por IBM, están actualizados yestán sujetos a cambios sin aviso previo. Los precios de los concesionarios pueden ser diferentes.

Esta información tiene únicamente valor de planificación. La información contenida en estadocumentación está sujeta a cambios antes de que los productos descritos estén disponibles.

Esta información contiene ejemplos de datos e informes utilizados en operaciones comerciales diarias.Para ilustrarlas de la forma más completa posible, los ejemplos incluyen nombres de personas, empresas,marcas y productos. Todos estos nombres son ficticios y cualquier parecido con los nombres y direccionesutilizados por una empresa real es mera coincidencia.

LICENCIA DE COPYRIGHT:

Esta información contiene programas de aplicación de ejemplo en lenguaje fuente, que ilustran lastécnicas de programación en diversas plataformas operativas. Puede copiar, modificar y distribuir estosprogramas de muestra de cualquier modo sin pagar a IBM con el fin de desarrollar, utilizar, comercializaro distribuir programas de aplicación que se ajusten a la interfaz de programación de aplicaciones para laplataforma operativa para la que se ha escrito el código de muestra. Los ejemplos no se han probadominuciosamente bajo todas las condiciones. Por lo tanto, IBM no puede garantizar ni dar por sentada la

158 IBM i: OmniFind Text Search Server for DB2 for i

Page 165: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

fiabilidad, facilidad de mantenimiento o la función de estos programas. Los programas de ejemplo seofrecen "TAL CUAL", sin garantía de ningún tipo. IBM no será responsable de ningún daño derivado deluso de los programas de ejemplo.

Cada copia o parte de estos programas de ejemplo, así como todo trabajo derivado, debe incluir un avisode copyright como el siguiente:

© nombre de la empresa) (año). Partes de este código derivan de programas de ejemplo de IBM Corp.Sample Programs.

© Copyright IBM Corp. _escriba el año o años_.

Si está viendo esta información en copia software, es posible que las fotografías y las ilustraciones encolor no aparezcan.

Información de la interfaz de programaciónEsta publicación de Common Information Model (CIM) documenta las interfaces de programación cuyafinalidad es permitir al cliente escribir programas para obtener los servicios de IBM i.

Marcas registradasIBM, el logotipo de IBM e ibm.com son marcas registradas o marcas comerciales registradas deInternational Business Machines Corp., registradas en muchas jurisdicciones de todo el mundo. Puedeque otros productos o nombres de servicio sean marcas registradas de IBM u otras compañías. Haydisponible una lista actual de marcas registradas de IBM en la web “Información de marca registrada ycopyright” en www.ibm.com/legal/copytrade.shtml.

Adobe, el logotipo de Adobe, PostScript y el logotipo de PostScript son marcas registradas de AdobeSystems Incorporated en los Estados Unidos de América o en otros países.

IT Infrastructure Library es una marca registrada de Central Computer and Telecommunications Agency,que actualmente forma parte de Office of Government Commerce.

Intel, el logotipo de Intel, Intel Inside, el logotipo de Intel Inside, Intel Centrino, el logotipo de IntelCentrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, y Pentium son marcas registradas de IntelCorporation o de sus subsidiarias en los Estados Unidos y/o en otros países.

Linux es una marca registrada de Linus Torvalds en los Estados Unidos de América o en otros países.

Microsoft, Windows, Windows NT, y el logotipo de Windows son marcas comerciales de MicrosoftCorporation en Estados Unidos, otros países o ambos.

ITIL es una marca registrada y una marca registrada de comunidad de Office of Government Commercey está registrada en U.S. Patent and Trademark Office.

UNIX es una marca registrada de The Open Group en los Estados Unidos de América o en otros países.

Cell Broadband Engine es una marca comercial de Sony Computer Entertainment, Inc. en EstadosUnidos, otros países o ambos y se utiliza bajo licencia.

Java y todas las marcas registradas y logotipos basados en Java son marcas registradas de SunMicrosystems, Inc. en los Estados Unidos de América o en otros países.

Los demás nombres de productos y servicios pueden ser marcas registradas de IBM o de terceros.

Avisos 159

Page 166: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

160 IBM i: OmniFind Text Search Server for DB2 for i

Page 167: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

Índice

Aactualizar la colección 139ADD_SPLF_OBJECT_SET 124, 131alta disponibilidad 93añadir un conjunto de objetos para datos

de archivo spoolADD_SPLF_OBJECT_SET 124

añadir un conjunto de objetos para unarchivo continuo

ADD_IFS_STMF_OBJECT_SET 131archivos de registro 74argumento de búsqueda 40, 43

Bbúsqueda 94, 98búsqueda de texto 3

iniciar 13búsqueda XML

características 54gramática de consultas 68

Ccabecera de ampliaciones

colecciones de búsqueda de texto 118códigos de idioma 8códigos de retorno SQL 153colección de búsqueda

SEARCH 141SYSPROC.SYSTS_CRTCOL 119

colecciones de búsqueda de textocabecera de ampliaciones 118

COLLECTION_NAME.UPDATE 139collection.status 146comunicación entre cliente y servidor 3conceptos clave

funciones de búsqueda de texto 4configurar 12consultar información sobre conjuntos de

objetos 143CONTAINS 47

Ddatos XML

indexar 6desencadenantes 5determinación de problemas 74diccionario de sinónimos 85

añadir 85eliminar 86

Eejemplos de consultas

función CONTAINS 47función SCORE 47

eliminar un conjunto de objetosREMOVE_OBJECT_SET 138

eliminar una colección de búsqueda detexto

SYSTS_DROP_COLLECTION 148

Fformatos de documento

soportados 6función CONTAINS

ejemplo 53función SCORE

ejemplo 53funciones

CONTAINS 40SCORE 43

funciones de búsqueda de textoconceptos clave 4

funciones definidas por el usuario 40

GGet_object_status 144GET_OBJECTS_NOT_INDEXED 145gramática EBNF 68

Hhardware

requisitos 4Health Checker 91herramienta de administración 89Herramienta de configuración 76Herramienta de sinónimos 85Herramienta ServerInstance 90herramientas de línea de mandatos 76

Health Checker 91herramienta de administración 89Herramienta de configuración 76Herramienta de sinónimos 85Herramienta ServerInstance 90

IIASP para colecciones de búsqueda de

textoColecciones de búsqueda de

texto 152IBM OmniFind Text Search Server

detener 70iniciar 70

idiomassoportados 8

indexación asíncrona 5índice de búsqueda de texto 71, 72, 73

actualizaciones 4, 118actualizar 14buscar 15

índice de búsqueda de texto(continuación)

creación 4, 118crear 14

índice de texto 3, 71, 72, 73instalación 12instalar 12

Llenguaje XPath 68llenar 12

Mmensajes 153

OObtener objetos no indexados 145OmniFind 3, 12OmniFind Text Search 12OmniFind Text Search Server 12operadores de búsqueda avanzada

función CONTAINS 48función SCORE 48

Ppaquete de diccionarios 8procedimiento almacenado

SYSPROC.SYSTS_REMOVE 78SYSPROC.SYSTS_REPRIMEINDEX 80,

81SYSPROC.SYSTS_VALIDITYCHECK 82

procedimientos almacenados 15SYSPROC.SYSTS_ALTER 28SYSPROC.SYSTS_CREATE 19SYSPROC.SYSTS_DROP 34SYSPROC.SYSTS_START 15SYSPROC.SYSTS_STOP 17SYSPROC.SYSTS_UPDATE 36

proceso lingüístico 8Chino 9

proceso lingüístico 9Coreano 9

proceso lingüístico 9Japonés 9

proceso lingüístico 9puntuación de relevancia 43puntuación de texto 7

QQDBTS_LISTINXSTS

UDTF 87QSYS2.SYSTEXTCOLUMNS 114, 117QSYS2.SYSTEXTCONFIGURATION 116QSYS2.SYSTEXTINDEXES 112

© Copyright IBM Corp. 2002, 2014 161

Page 168: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

QSYS2.SYSTEXTSERVERHISTORY 117QSYS2.SYSTEXTSERVERS 12, 115QUERY_OBJECT_SET 143

Rrecorte de documentos 15recuperar el estado de colección 146recuperar estado de objetos

indexados 144registro del servidor

guardar 75visualizar 75

rendimiento 94requisitos del sistema 4restaurar 71, 72, 73Restaurar colecciones de búsqueda de

textoRestaurar colecciones de búsqueda de

texto 152

Ssalvar 71, 72, 73salvar y restaurar 71, 72, 73SCORE 47segmentación basada en diccionario 9segmentación n-gram 8, 9servidor de búsqueda de texto IBM 4servidor de búsqueda de texto

OmniFind 3búsqueda de texto 2índice de texto 2OmniFind 2

servidores de búsqueda de texto 12sintaxis de argumentos de búsqueda 40

búsqueda de frases 45búsqueda simple 45carácter comodín 45excluir términos 45incluir términos 45

sintaxis de búsqueda 40sistema operativo

requisitos 4software

requisitos 4soporte de sinónimos 7SYSIBMTS.SYSTEXTDEFAULTS 111SYSPROC.SYSTS_CREATE 19SYSPROC.SYSTS_CREATE_COLLECTION 119SYSPROC.SYSTS_CRTCOL 119SYSPROC.SYSTS_DROP 28, 34SYSPROC.SYSTS_START 15SYSPROC.SYSTS_STOP 17SYSPROC.SYSTS_UPDATE 36SYSTEXTSERVERS 12

Ttablas de administración 111

QSYS2.SYSTEXTCOLUMNS 114, 117QSYS2.SYSTEXTCONFIGURATION 116QSYS2.SYSTEXTINDEXES 112QSYS2.SYSTEXTSERVERHISTORY 117QSYS2.SYSTEXTSERVERS 115SYSIBMTS.SYSTEXTDEFAULTS 111

tamaño de documento 15Text Search for DB2 for i 12tipos de datos

soportados 7transacción 98

UUDTF QDBTS_LISTINXSTS 87UPDATEAUTOCOMMIT 94, 98

Vvisión general del producto 3volver a llenar la colección de búsqueda

de texto 140volver a preparar colección 140

162 IBM i: OmniFind Text Search Server for DB2 for i

Page 169: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos
Page 170: IBM i: OmniFind Text Search Server for DB2 for i un índice de búsqueda de texto . . . 14 Buscar en un índice de búsqueda de texto . . . 14 Recorte de documentos .....15 Procedimientos

����

Número de Programa: 5733-OMF

Impreso en España