Realice los pasos siguientes para verificar si Net Search Extender se ha instalado correctamente.
Si no hay errores en el archivo nsesample.log y todas las consultas funcionan, Net Search Extender se ha instalado satisfactoriamente.
Nota |
---|
Para obtener información acerca de la migración, consulte el Apéndice A, Migración. |
Utilice este capítulo para conocer Net Search Extender utilizando como prueba los ejemplos siguientes:
Para obtener más información sobre la utilización de Net Search Extender, consulte los capítulos siguientes:
Nota |
---|
Antes de utilizar los ejemplos, asegúrese de que Net Search Extender se haya instalado satisfactoriamente utilizando el procedimiento de verificación de la instalación. |
Utilice los siguientes pasos del ejemplo de DB2 Net Search Extender:
Puede emitir los mandatos de ejemplo en la línea de mandatos del sistema operativo utilizando la base de datos existente. Para los ejemplos siguientes, el nombre de la base de datos es sample.
db2 "create database ejemplo"
db2text "START"
Utilice el mandato siguiente para preparar la base de datos para que se utilice en DB2 Net Search Extender:
db2text "ENABLE DATABASE FOR TEXT CONNECT TO ejemplo"
Sólo es necesario efectuar este paso una vez para cada base de datos.
db2 "CREATE TABLE libros (isbn VARCHAR(18) not null PRIMARY KEY, autor VARCHAR(30), tema LONG VARCHAR, año INTEGER)"
Este mandato de DB2 crea una tabla denominada libros. Contiene las columnas correspondientes al autor, el tema, el número de isbn y el año de publicación del libro.
db2text "CREATE INDEX db2ext.miÍndiceTexto FOR TEXT ON libros (tema) CONNECT TO ejemplo"
Este mandato crea un índice de texto completo para la columna tema. El nombre del índice de texto es db2ext.miÍndiceTexto
db2 "INSERT INTO libros VALUES ('0-13-086755-1','Juan', 'Un hombre corría por la calle',2001)" db2 "INSERT INTO libros VALUES ('0-13-086755-2','Miguel', 'El gato caza ratones', 2000)" db2 "INSERT INTO libros VALUES ('0-13-086755-3','Pedro', 'Había algunos hombres de pie junto a la mesa',1999)"
Estos mandatos cargan la información de isbn, autor, tema y año de publicación de estos libros en la tabla.
db2text "UPDATE INDEX db2ext.miÍndiceTexto FOR TEXT CONNECT TO ejemplo"
db2 "SELECT autor, tema FROM libros WHERE CONTAINS (tema, '\"gato\"') = 1 AND año >= 2000"
Nota |
---|
Según el shell del sistema operativo que esté utilizando, puede que tenga que usar un carácter de escape diferente delante de las comillas dobles que rodean la frase de búsqueda de texto. El ejemplo anterior utiliza "\" como un carácter de escape. |
Esta consulta busca todos los libros sobre el término gatos publicados a partir del año 2000 (inclusive). La consulta devuelve la siguiente tabla de resultados:
AUTOR TEMA Miguel El gato caza ratones.
Entre otras funciones soportadas están SCORE y NUMBEROFMATCHES. SCORE devuelve un indicador que especifica la exactitud con que el argumento de búsqueda describe el documento hallado. NUMBEROFMATCHES devuelve cuántas coincidencias de los términos de consulta se han encontrado en un documento resultante.
Utilice los siguientes pasos del ejemplo de búsqueda de procedimiento almacenado de DB2 Net Search Extender:
Nota |
---|
El ejemplo de procedimiento almacenado presupone que se han realizado los pasos del ejemplo anterior y que la base de datos todavía está habilitada. |
db2text "CREATE INDEX db2ext.miÍndiceTextoSTP FOR TEXT ON libros (tema) CACHE TABLE (autor, tema) MAXIMUM CACHE SIZE 1 CONNECT TO ejemplo"
En este ejemplo, el índice de texto completo es para la columna tema y especifica una tabla de antememoria en las columnas autor y tema. El nombre del índice de texto es miÍndiceTextoSTP.
db2text "UPDATE INDEX db2ext.miÍndiceTextoSTP FOR TEXT CONNECT TO ejemplo"
Para activar la antememoria, utilice el mandato siguiente:
db2text "ACTIVATE CACHE FOR INDEX db2ext.miÍndiceTextoSTP FOR TEXT CONNECT TO ejemplo"
db2 "call db2ext.textSearch ('\"gato\"','DB2EXT','MYSTPTEXTINDEX',0,2,0,0,?,?)"
Esta consulta busca todos los libros sobre un gato, pero sólo devuelve los dos primeros resultados. En este caso, la consulta devuelve la siguiente tabla de resultados:
Valor de los parámetros de salida --------------------------------- Nombre de parámetro: SEARCHTERMCOUNTS Valor de parámetro : 1 Nombre de parámetro: TOTALNUMBEROFRESULTS Valor de parámetro : 1 AUTOR TEMA Miguel El gato caza ratones. Estado de retorno = 0
Para ver más ejemplos de la sintaxis de la búsqueda consulte el archivo siguiente: sqllib\sample\db2ext\search
Para obtener más detalles sobre otros parámetros utilizados en la consulta, vea el apartado Búsqueda de texto con una búsqueda de procedimiento almacenado.
La función de valor de tabla SQL se puede utilizar en los índices de texto creados en los ejemplos anteriores.
La consulta función de valor de tabla SQL corresponde a la consulta CONTAINS usada anteriormente. Consulte la sección "Sincronización del índice de texto" en la página *** para obtener información.
db2 "SELECT autor, tema FROM libros b, table (db2ext.textsearch ('\"gato\"','DB2EXT','MYTEXTINDEX', 0, 2, CAST (NULL AS VARCHAR(18)))) T where T.primKey = b.isbn
Para obtener información detallada, vea el apartado Utilización de una función de valor de tabla SQL para la búsqueda.
Nota |
---|
La difusión CAST (NULL AS VARCHAR(18)) llama a la función de valor de tabla correspondiente a la clave primaria para la tabla libros. Para cada tipo de clave primaria existe una función de valor de tabla. Esto identifica la función de valor de tabla correcta para DB2. |
Para utilizar DB2 Net Search Extender de la manera más efectiva, es primordial realizar alguna planificación antes del desarrollo. Este desarrollo debe implicar a varios grupos incluyendo los de administración de bases de datos, los diseñadores de interfaces y del sistema, los arquitectos y desarrolladores del sistema.
Las secciones siguientes ofrecen una guía para las áreas que deben tenerse en cuenta.
Para obtener más información sobre el desarrollo de aplicaciones basadas en DB2 Net Search Extender, consulte los capítulos siguientes:
El espacio en disco que se necesita para un índice depende del tamaño y del tipo de los datos que desee indexar. A modo de guía, para indexar documentos de un sólo byte necesitará reservar un espacio en disco de aproximadamente 0,7 veces el tamaño de los documentos que desee indexar. Para los documentos de doble byte, reserve el mismo espacio en disco que el tamaño de los documentos que desee indexar.
La cantidad de espacio necesario para archivos temporales en el directorio de trabajo es de 1 a 4 veces la cantidad de espacio necesario para el archivo de índice final del directorio de índices.
Si tiene varios índices grandes, debería almacenarlos en dispositivos de disco distintos, especialmente si tiene acceso simultáneo a los índices durante la actualización de los índices o la realización de búsquedas en los mismos.
También debe especificar el directorio en el que se almacenará el índice de texto. Asegúrese de que haya suficiente espacio en disco y de que el propietario de la instancia de DB2 tenga acceso de grabación sobre el directorio.
DB2 Net Search Extender necesita conocer el formato (o tipo) de los documentos de texto en los que tiene intención de realizar búsquedas. Esta información es necesaria para indexar documentos de texto.
DB2 Net Search Extender da soporte a los siguientes formatos de documento:
Para los formatos de documento HTML, XML, GPP y los formatos de filtrado Outside In, la búsqueda se puede restringir a partes específicas de un documento. El Chapter 9, Cómo trabajar con documentos estructurados explica cómo definir modelos de documento y trabajar con ellos.
Para formatos de documentos no soportados en los que no se puede utilizar filtros Outside In, se puede escribir una función definida por el usuario (UDF). Esta UDF se debe especificar durante la creación del índice y convierte los datos de formato no soportado a un formato soportado.
Vea CREATE INDEX para obtener más información.
Los documentos se pueden indexar si están en uno de los identificadores de juego de caracteres codificados (CCSID) soportados. También se conocen como páginas de códigos. Vea la lista de estas páginas de códigos en el Apéndice D, CCSID soportados.
Para comprobar la página de códigos de la base de datos, utilice el siguiente mandato de DB2:
db2 GET DB CFG for <nombrebd>
Por coherencia, DB2 normalmente convierte la página de códigos de un documento a la página de códigos de la base de datos. Sin embargo, cuando almacena datos en una base de datos DB2 en una columna con un tipo de datos binario como, por ejemplo, BLOB, FOR BIT DATA o un valor Datalink, DB2 no convierte los datos y los documentos retienen los CCSID originales.
Tenga en cuenta que si existen dos páginas de códigos diferentes podrían producirse problemas al crear un índice de texto o realizar búsquedas. Consulte la sección Creación de un índice de texto en tipos de datos binarios para obtener más información.
DB2 Net Search Extender ofrece soporte al software de filtrado de documentos de terceros. Conocido como Outside In de Stellent, este software se puede utilizar para extraer el contenido textual de archivos PDF, o de documentos escritos en el formato de propiedad de herramientas de formateo de texto comunes sin utilizar aplicaciones nativas. Los formatos de ejemplo incluyen Microsoft Word y Lotus Word Pro.
Las bibliotecas de Outside In se cargan como conectores durante UPDATE INDEX. Las bibliotecas no forman parte de Net Search Extender y se deben instalar por separado. Debe asegurarse de que Net Search Extender pueda encontrar las bibliotecas de Outside In. Para obtener información sobre la configuración y utilización de las bibliotecas, vea el apartado Instalación de las bibliotecas de Outside In.
El software de Outside In puede generar no sólo contenido textual sino también información estructural como, por ejemplo, campos. Net Search Extender también puede personalizar qué parte de la información de documentos generada por Outside In se debe almacenar en el índice. Para hacerlo, debe aplicar un tipo específico de modelo de documento, el modelo de documento Outside In.
Para obtener información, consulte la sección Definición de un modelo de documento para documentos filtrados Outside In.
El sitio Web de Stellent es http://www.stellent.com.
Para ver una lista de los formatos de filtrado, utilice el siguiente URL:
http://www.stellent.com/intradoc-cgi/nph-idc_cgi.exe/p31019225.pdf?IdcService= GET_FILE&noSaveAs=1&Rendition=Web&RevisionSelectionMethod= LatestReleased&allowInterrupt=1&dDocName=p31019225
Nota |
---|
El software de filtrado Outside In sólo está disponible en instancias de 32 bits. Ho hay disponible soporte para 64 bits. |
Estas son las distintas funciones y autorizaciones para los usuarios de Net Search Extender:
El usuario propietario de la instancia de DB2 puede iniciar y detener los servicios de instancia de DB2 Net Search Extender y controlar los servicios de bloqueo. Además, el usuario de la instancia de DB2 se convierte en DBADM para cada base de datos habilitada. Esto permite que DB2 Net Search Extender pueda gestionar un punto central de control para todos los cambios de la base de datos.
Los mandatos sólo están permitidos en el servidor. En un entorno DB2 distribuido, puede ser cualquiera de los servidores. Cada mandato comprueba si el usuario que está ejecutando el mandato es el propietario de la instancia de DB2. Tenga en cuenta que la utilización de un ID de usuario con limitaciones en sistemas UNIX no influye en el proceso de Net Search Extender respecto a la autorización o al rendimiento.
Los administradores de bases de datos pueden habilitar e inhabilitar las bases de datos para su utilización con DB2 Net Search Extender.
El propietario de la tabla de texto puede crear, descartar y cambiar índices. Tenga en cuenta que deben poder controlar la ubicación de los índices y las actualizaciones de los índices de texto completo.
Tenga en cuenta que la implementación de mandatos se ejecuta en parte bajo el ID de usuario del propietario de la instancia de DB2. Por lo tanto, se debe otorgar al propietario de la instancia el acceso necesario al sistema de archivos antes de crear o modificar los índices de texto.
Para la indexación, puede utilizar la opción de la línea de mandatos o la interfaz del Centro de control de DB2.
Los servicios de instancia de DB2 Net Search Extender constan de los siguientes servicios:
En este capítulo se explica cómo iniciar y detener los servicios de instancia de DB2 Net Search Extender. También explica detalladamente los servicios de bloqueo y los servicios de actualización.
Antes de poder crear un índice de texto y realizar búsquedas en los documentos, debe iniciar los servicios de instancia de DB2 Net Search Extender.
Para iniciar los servicios de instancia, inicie la sesión con el ID de usuario del propietario de la instancia de DB2 (sólo para los sistemas UNIX) y ejecute el siguiente mandato:
db2text start
Para detener los servicios de instancia, ejecute el mandato siguiente:
db2text stop
Tenga en cuenta que debe haber un servicio de instancia de Net Search Extender por instancia de DB2. El servicio de bloqueo mantiene los bloqueos para varias bases de datos.
Cuando se inicia DB2 Net Search Extender, los servicios de bloqueo se inician automáticamente. Los servicios de bloqueo son necesarios para sincronizar el acceso simultáneo a índices de texto en Net Search Extender.
Los servicios de bloqueo garantizan que dos procesos no puedan intentar cambiar un índice de texto simultáneamente o que ningún proceso lea datos del índice de texto mientras otro proceso está realizando cambios en esos mismos datos. Por lo tanto, la mayoría de procesos solicitan un bloqueo sobre un índice de texto antes de iniciarse y lo vuelven a liberar cuando el proceso ha finalizado.
No deben confundirse los servicios de bloqueo para los índices de texto de Net Search Extender con los bloqueos de DB2 que controlan el acceso a las tablas de DB2.