IBM Books
(C) IBM Corp. 2000

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

DB2EXT.TEXTSEARCH

Además de la búsqueda de procedimiento almacenado y las funciones de búsqueda escalar SQL, Net Search Extender proporciona dos funciones de valor de tabla SQL muy similares al procedimiento almacenado.

Las dos funciones de valor de tabla se denominan db2ext.textsearch. La única diferencia entre ellas es que una soporta la función HIGHLIGHT y tiene dos parámetros adicionales, numberOfHits y hitInformation.

Tenga en cuenta que no puede utilizar la función de valor de tabla en tablas con una clave primaria compuesta.

Para obtener información sobre el uso de la función HIGHLIGHT, vea DB2EXT.HIGHLIGHT.

Nota

La función de valor de tabla sólo puede utilizarse en un entorno DB2 distribuido si la tabla del usuario está almacenada en un espacio de tabla de un solo nodo. También debe asegurarse de que se conecta al nodo adecuado utilizando la variable de entorno DB2NODE.

Sintaxis de la función

1. db2ext.textsearch without highlight support
 
                
db2ext.textSearch
                (
                query	   	        VARCHAR(4096),
                indexSchema   	   VARCHAR(128),
                indexName        	VARCHAR(128),
                resultFirstRow   	INTEGER,
                resultNumberRows 	INTEGER,
                primKeyBinding   	<tipos soportados>,// mismo tipo que
                                                                 clave primaria
                )
 
                return table
                (
                primKey           <tipos soportados>,// mismo tipo que
                                                           clave primaria
                numberOfMatches   INTEGER,
score           DOUBLE,
totalNbResults  INTEGER
                )
 
 
2. db2ext.textsearch with highlight support
 
 
db2ext.textSearch
                (
                query	   	        VARCHAR(4096),
                indexSchema       VARCHAR(128),
                indexName        	VARCHAR(128),
                resultFirstRow   	INTEGER,
                resultNumberRows 	INTEGER,
                primKeyBinding   	<tipos soportados>,// mismo tipo que
                                                                 clave primaria
                numberOfHits      INTEGER
                )
 
                return table
                (
                primKey           <tipos soportados>,// mismo tipo que
                                                           clave primaria
                numberOfMatches   INTEGER,
score           DOUBLE,
totalNbResults  INTEGER
                hitInformation    BLOB (20 K)
                )
 
 

Parámetros de la función

Los siguientes son parámetros de entrada.

query
Consulte el Capítulo 14, Sintaxis de los argumentos de búsqueda para obtener información adicional.

indexSchema, indexName
Identifica el índice donde debe buscarse. Para obtener más información, vea CREATE INDEX.

resultFirstRow
La lista de resultados de la consulta se devuelve por partes. Este parámetro describe qué fila de la lista de resultados de la consulta es la primera que aparece en la tabla de resultados de la función de valor de tabla. El valor debe ser >= 0.

Tenga en cuenta que el número 0 identifica la primera fila de la lista de resultados de la consulta.

resultNumberRows
Este parámetro describe cuántas filas de la lista de resultados de la consulta aparecen en la tabla de resultados de la función de valor de tabla, donde 0 significa que se deben devolver todos los resultados.

Tenga en cuenta que este parámetro es diferente al de consulta de límite de resultados que determina el tamaño máximo de la lista de resultados de la consulta.

primaryKeyBinding
El tipo de este parámetro determina el tipo de parámetro de salida primaryKey. Si el índice de texto se ha creado para una tabla base con una clave primaria de tipo <type1>, primaryKeyBinding también debe ser de tipo <type1>.

Adicionalmente, el parámetro determina el alcance de la búsqueda de texto. Si primaryKeyBinding se ha establecido en NULL ("CAST(NULL as <type1>)", el alcance de la búsqueda será de todos los documentos almacenados en el índice. Como alternativa, puede restringir la búsqueda a documentos a los que se haya vinculado primaryKeyBinding.

Por ejemplo, si primaryKeyBinding se ha establecido en CAST(5 as BIGINT), la búsqueda se restringirá al único documento con el valor de clave primaria BIGINT de "5".

Tenga en cuenta que sólo se da soporte a las claves primarias de columna simple de los tipos siguientes: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE, VARCHAR FOR BIT DATA, DATE, TIME y TIMESTAMP.

numberOfhits
Esta opción especifica la cantidad máxima de información de los resultados que devuelve la función db2ext.textsearch. Si se especifica 0, se proporcionará la información sobre un máximo de 1100 resultados. Este proceso puede durar mucho tiempo.

Tenga en cuenta que este parámetro sólo es necesario para generar la información de resaltado necesaria para la función db2ext.highlight.

Parámetros de la función

Los valores de retorno siguientes se almacenan en una tabla temporal que debe unirse a la tabla normal si se piden más resultados. Tenga en cuenta que NUMBEROFMATCHES, SCORE, TOTALNUMBEROFRESULTS y HITINFORMATION sólo se calculan si se solicitan en la sentencia select.

primKey
Clave primaria del documento encontrado.

numberofmatches
NUMBEROFMATCHES es un valor INTEGER que indica cuántas coincidencias se han encontrado para cada documento.

score
Score devuelve un valor DOUBLE. Conforme aumenta la frecuencia en el documento del término de la búsqueda, el Score del documento aumenta.

totalNumberOfResults
La lista de resultados de la consulta indica cuántos resultados se han encontrado. Tenga en cuenta que cada fila tiene el mismo valor.

Tenga en cuenta también que cuando utilice STOP SEARCH AFTER o RESULT LIMIT conjuntamente con la sintaxis de SCORE en una consulta, este número ya no resultará fiable.

hitInformation
La información de coincidencias que devuelve db2ext.textsearch resulta necesaria para el proceso de resaltado. Actualmente, este parámetro de salida puede contener información de aproximadamente 1.100 coincidencias. Si el número de coincidencias sobrepasa este umbral, la información de los resultados de más se pasará por alto.

Tenga en cuenta que este valor sólo se devolverá si se especifica numberOfHits.

Uso

Gracias a la función de valor de tabla SQL, puede buscar en vistas de la misma manera como lo hace con la búsqueda de procedimiento almacenado. La única diferencia es que no se necesita memoria compartida, por lo que no es necesario activar el índice.

Esta función sirve principalmente para los usuarios que han utilizado una consulta SQL en la búsqueda de procedimiento almacenado. Sin embargo, tiene la limitación de que solamente se da soporte a una clave primaria de una sola columna en las tablas base.

El ejemplo siguiente muestra cómo trabajar con una tabla de clave primaria de varias columnas:

select s.id from
db2ext.sample s, table (db2ext.textSearch(
        '"characteristics"',
         'DB2EXT',
         'COMMANDS',
         1,
         20,
         cast(NULL as INTEGER))) t
where s.id = t.primkey

En este ejemplo, primero se debe crear una vista sobre esta tabla con una sola clave exclusiva y a continuación se debe crear el índice sobre esta vista.

Para obtener un ejemplo sobre como utilizar la función de valor de tabla SQL con la función db2ext.highlight, consulte la página ***.


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