IBM Books
(C) IBM Corp. 2000

Manual de administración y del usuario de DB2 Net Search Extender


Índices de texto en vistas

Al utilizar el procedimiento almacenado, es posible crear índices de texto en vistas. Sin embargo, un inconveniente importante es que no se pueden crear activadores en las vistas y los cambios en las tablas base subyacentes no se reconocen.

Por lo tanto, en caso de actualizaciones incrementales de índice, el usuario debe conocer qué documento se ha añadido, actualizado o suprimido para poder sincronizar el índice de texto con la base de datos. Para ello, debe añadir todos los cambios a la tabla de anotaciones cronológicas. Este proceso se muestra en el ejemplo siguiente:

  1. Para crear la tabla base, utilice el mandato siguiente:
    db2 "create table sample (key INTEGER not null  PRIMARY KEY, name 
                VARCHAR(50) not null, comment VARCHAR(90))" 
    
  2. Para añadir entradas, utilice los mandatos siguientes:
    db2 "insert into ejemplo values(1,'Claus','trabaja en la habitación 301')"
    db2 "insert into sample values(2,'Manja','está en la misma oficina
                                   que Juergen')"
    db2 "insert into sample values(2,'Juergen','es quien está más lejos de
                                   Raiko')"
    db2 "insert into ejemplo values(3,'Raiko','está sentado en la oficina 
    junto a Claus ')"
    
  3. Para crear la vista, utilice el mandato siguiente:
    db2 "create view vistaejemplo as select key, comentario from ejemplo"
    
  4. Utilice los mandatos siguientes para crear, actualizar y activar el índice de texto:
    db2text "create index vistaíndice for text on hde.sampleview(comentario)
                cache table (comentario) maximum cache size 1 key columns
                for index on view (clave)"
    db2text "update index vistaíndice for text"
    db2text "activate cache for index vistaíndice for text"
    
    Nota

    Debe especificar la tabla de antememoria para poder crear un índice de texto en una vista. Para crear la tabla de anotaciones cronológicas correcta, deberá especificar las columnas clave para el índice de la vista.

    En un entorno DB2 distribuido, debe especificar explícitamente un espacio de tabla para las tablas de administración en un solo nodo y realizar llamadas explícitamente en este nodo.

    Para asegurarse de que se conecta al nodo adecuado, utilice la variable de entorno DB2NODE.

  5. Para actualizar la tabla, utilice los mandatos siguientes:
    db2 "insert into sample values(4,'Bernhard','está trabajando en la misma
    planta que Manja, pero no que Claus')"
    db2 "insert into sample values(5,'Guenter','comparte la oficina con Raiko')"
    
  6. Después actualice la tabla de anotaciones cronológicas. Para obtener el nombre de la tabla de anotaciones cronológicas, utilice el mandato siguiente:
    db2 "select INDSCHEMA,INDNAME,LOGVIEWSCHEMA,LOGVIEWNAME 
                from db2ext.textindexes"
    
    Éste es el diseño de la tabla de anotaciones cronológicas:
    sqltype               sqllen  sqlname.data             sqlname.length
    --------------------  ------  -----------------------  --------------
    496   INTEGER              4  OPERATION                       9
    392   TIMESTAMP           26  TIME                            4
    497   INTEGER              4  PK01                            4
    
    Para añadir entradas a la tabla de anotaciones cronológicas, utilice los mandatos siguientes:
    db2 "insert into ejemplo values(0,CURRENT TIMESTAMP,4)"
    db2 "insert into ejemplo values(0,CURRENT TIMESTAMP,5)"
    
    El primer valor describe la operación (0= insertar, 1 = actualizar, 2 = suprimir). El segundo siempre debería ser CURRENT TIMESTAMP y el último valor es la clave que se ha insertado.
  7. Utilice el mandato siguiente para volver a actualizar el índice:
    db2text "update index vistaíndice for text"
    

Ahora podrá realizar búsquedas con el procedimiento almacenado en los valores nuevos.


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