dict_int es un ejemplo de una plantilla de diccionario
adicional para la búsqueda de texto completo. La motivación de este diccionario
de ejemplo es controlar la indexación de números enteros (con y sin signo),
permitiendo que dichos números sean indexados al mismo tiempo que se evita el
crecimiento excesivo en el número de palabras únicas, lo cual afecta
encarecidamente el rendimiento de las búsquedas.
Este módulo se considera “trusted” (de confianza), es decir, puede ser
instalado por usuarios que no sean superusuarios y que tengan el privilegio
CREATE en la base de datos actual.
El diccionario acepta tres opciones:
El parámetro maxlen especifica el número máximo de
dígitos permitidos en una palabra entera. El valor predeterminado es 6.
El parámetro rejectlong especifica si un número entero
que excede la longitud debe ser truncado o ignorado. Si
rejectlong es false (el valor
predeterminado), el diccionario devuelve los primeros maxlen
dígitos del número entero. Si rejectlong es
true, el diccionario trata a un entero que excede la
longitud como una palabra vacía (stop word), de modo que no se indexará.
Ten en cuenta que esto también significa que no se podrá buscar dicho entero.
El parámetro absval especifica si se deben eliminar los
signos iniciales “+” o “-”
de las palabras enteras. El valor predeterminado es false.
Cuando es true, el signo se elimina antes de que se
aplique maxlen.
La instalación de la extensión dict_int crea una plantilla de
búsqueda de texto intdict_template y un diccionario intdict
basado en ella, con los parámetros predeterminados. Puedes modificar los
parámetros, por ejemplo:
mydb# ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = 4, REJECTLONG = true); ALTER TEXT SEARCH DICTIONARY
o crear nuevos diccionarios basados en la plantilla.
Para probar el diccionario, puedes intentar:
mydb# select ts_lexize('intdict', '12345678');
ts_lexize
-----------
{123456}
pero el uso en el mundo real implicará incluirlo en una configuración de búsqueda de texto como se describe en la Chapter 12. Eso podría verse así:
ALTER TEXT SEARCH CONFIGURATION english
ALTER MAPPING FOR int, uint WITH intdict;