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.
Tenga en cuenta que el número 0 identifica la primera fila de la lista de resultados de la consulta.
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.
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.
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.
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.
Tenga en cuenta que este valor sólo se devolverá si se especifica numberOfHits.
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 ***.