IBM Books
(C) IBM Corp. 2000

DB2 Net Search Extender Guía de administración y del usuario

Verificación de la instalación en UNIX

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.


Chapter 3. Situaciones de usuario

Utilice este capítulo para conocer Net Search Extender utilizando como prueba los ejemplos siguientes:

Ejemplo de búsqueda escalar SQL
Este ejemplo de línea de mandatos demuestra las funciones de indexación y de búsqueda disponibles.

Ejemplo de procedimiento almacenado
Este ejemplo de línea de mandatos utiliza el mandato de indexación del ejemplo anterior. Sin embargo, con la adición de una antememoria, el ejemplo demuestra las diferentes funciones de indexación y búsqueda disponibles.

Ejemplo de función de valor de tabla SQL

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.


Ejemplo simple utilizando la función de búsqueda escalar SQL

Utilice los siguientes pasos del ejemplo de DB2 Net Search Extender:

  1. Creación de una base de datos
  2. Habilitación de una base de datos para búsquedas de texto
  3. Creación de una tabla
  4. Creación de un índice de texto completo
  5. Carga de los datos de ejemplo
  6. Sincronización del índice de texto
  7. Búsqueda con el índice de texto

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.

Creación de una base de datos
Puede crear una base de datos en DB2 utilizando el mandato siguiente:
db2 "create database ejemplo"

Habilitación de una base de datos para la búsqueda de texto
Puede emitir mandatos de DB2 Net Search Extender de la misma manera que emitiría mandatos DB2 en la línea de mandatos del sistema operativo. Por ejemplo, utilice el mandato siguiente para iniciar Net Search Extender Instance Services:
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.

Creación de una tabla
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.

Creación de un índice de texto completo
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

Carga de los datos de ejemplo
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.

Sincronización del índice de texto
Para actualizar el índice de texto con datos de la tabla ejemplo, utilice el mandato siguiente:
db2text "UPDATE INDEX db2ext.miÍndiceTexto FOR TEXT CONNECT TO ejemplo"

Búsquedas con el índice de texto
Para buscar en el índice de texto, utilice la siguiente función de búsqueda escalar CONTAINS:
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.


Ejemplo simple con utilización de antememoria y la búsqueda de procedimiento almacenado

Utilice los siguientes pasos del ejemplo de búsqueda de procedimiento almacenado de DB2 Net Search Extender:

  1. Creación de un índice de texto con la opción de antememoria.
  2. Sincronización del índice y activación de la antememoria.
  3. Búsqueda con el procedimiento almacenado TEXTSEARCH.
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.

Creación de un índice de texto con la opción de antememoria
Como la base de datos ya está habilitada, utilice el mandato siguiente para crear un índice de texto completo:
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.

Sincronización del índice y activación de la antememoria
Para actualizar el índice de acuerdo a los datos insertados en la tabla, utilice el mandato siguiente:
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"

Búsqueda con el procedimiento almacenado TEXTSEARCH
El procedimiento almacenado de DB2 Net Search Extender sólo se puede utilizar en determinados casos. Para obtener información detallada, consulte la sección Utilización de una búsqueda de procedimiento almacenado.
 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.


Ejemplo simple con la función de valor de tabla SQL

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.


Chapter 4. Planificación

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:


Ubicaciones de directorios y almacenamiento de índices

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.


Formatos de documentos y páginas de códigos soportadas

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:

TEXT
Texto plano (por ejemplo, ASCII plano)

HTML
Lenguaje de marcación de hipertexto

XML
Lenguaje de marcación ampliado

GPP
Formato de finalidad general (texto plano con identificadores definidos por el usuario)

Outside In (INSO)
Software de filtrado para extraer contenido textual de archivos PDF y de otras herramientas de tratamiento de texto como, por ejemplo, Microsoft Word. Para obtener más información, vea el apartado Software de filtrado Outside In.

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.


Software de filtrado Outside In

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.


Funciones de los usuarios

Estas son las distintas funciones y autorizaciones para los usuarios de Net Search Extender:

Propietario de instancia de DB2

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.

Autorizaciones de DB2 necesarias
Se otorga DBADM sobre ENABLE DATABASE.

Autorizaciones de sistema de archivos necesarias
Acceso de lectura y grabación para todos los directorios de índice de texto y acceso de lectura para los archivos de modelos.

Mandatos para el propietario de la instancia
DB2TEXT START, DB2TEXT STOP y DB2TEXT CONTROL.

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.

Administradores de bases de datos

Los administradores de bases de datos pueden habilitar e inhabilitar las bases de datos para su utilización con DB2 Net Search Extender.

Autorizaciones de DB2 necesarias
DBADM (SYSADM para ENABLE DATABASE).

Mandatos para el administrador de bases de datos
DB2TEXT ENABLE DATABASE y DB2TEXT DISABLE DATABASE.

Propietarios de tablas de texto

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.

Autorizaciones y privilegios de DB2 necesarios
Propietario de la tabla de texto.

Mandatos para el propietario de la tabla de texto:
DB2TEXT CREATE INDEX, DB2TEXT DROP INDEX, DB2TEXT ALTER INDEX, DB2TEXT ACTIVATE CACHE, DB2TEXT DEACTIVATE CACHE, DB2TEXT UPDATE INDEX, DB2TEXT CLEAR EVENTS y DB2EXTTH.

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.


Utilización de la línea de mandatos o de la interfaz del Centro de control de DB2 para la indexación

Para la indexación, puede utilizar la opción de la línea de mandatos o la interfaz del Centro de control de DB2.


Chapter 5. Servicios de instancia de Net Search Extender

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.


Inicio y detención de DB2 Net Search Extender

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.


Servicios de bloqueo

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.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]