jueves, 26 de enero de 2017

Consultas de índices de texto en SQL SERVER - 2 de 2



Procedimientos almacenados del sistema para catalogos de texto

Una vez creados y llenado los catálogos, debemos activarlos con procedimientos almacenados del sistema. Todos los procedimientos almacenados del sistema empiezan por SP.
  • SP_FullText_Database: Activa / Desactiva todos los índices de todos los catálogos de texto para poder realizar las búsquedas con Microsoft Search. 
Sintaxis:

SP_FullText_Database 'Enable'
SP_FullText_Database 'Disable'
  • SP_help_FULLTEXT_COLUMNS: Indica las tablas y las columnas que están indexadas mediante catálogos (ejecutado sin parámetros). 
Sintaxis:

sp_help_fulltext_columns [ [ @table_name = ] 'table_name' ] ]
[ , [ @column_name = ] 'column_name' ]


Argumentos

[@table_name =] 'table_name'
Es el nombre de tabla de una o dos partes para el que se solicita información de índice de texto. El argumento table_name es de tipo nvarchar(517) y tiene el valor predeterminado NULL. Si se omite table_name, se obtiene la información de columna de índice de texto de todas las tablas con índice de texto.

[@column_name =] 'column_name'
Es el nombre de la columna cuyos metadatos de indización de texto se solicitan. El argumento column_name es de tipo sysname y su valor predeterminado es NULL. Si se omite el argumento column_name o es NULL, se obtiene la información de la columna de texto para cada columna con índice de texto del argumento table_name. Si también se omite table_name o es NULL, se obtiene la información de la columna de índice texto para cada columna con índice de texto de todas las tablas de la base de datos.


Funciones del sistema

Podemos utilizar funciones de transact-sql para obtener valores de las propiedades de texto.

Select DatabaseProperty (‘Base de datos’, IsFullTextEnabled)

Muestra si la base de datos indicada está preparada para la búsqueda de texto. Devuelve NULL si no está preparada y 1 si está preparada.

Ejemplo:

select databaseproperty('Ejemplo Microsoft Search','Isfulltextenabled')


Realizar búsquedas en un catalogo de texto
  • Instrucción Contains
Realiza búsquedas en columnas de tipo carácter, pueden ser coincidencias exactas, o aproximadas. Es capaz de buscar:
  • Una palabra o una frase.
  • El prefijo de una palabra o una frase.
  • Una palabra cerca de otra palabra.
  • Una palabra que sea una inflexión de otra, por ejemplo, las palabras controles, controladores, controlando y controlado son inflexiones de control (solo palabras en inglés).
  • Una palabra que tenga un peso especificado mayor que el de otra.

Búsquedas exactas o aproximadas: ‘PALABRA O FRASE’

Búsquedas exactas: ‘”Palabra o frase”’

Combinación de elementos: Podemos usar AND y OR. ‘Palabra o frase OR Palabra o frase’

Select titulo, descriptores
from Libros
where contains (descriptores, 'FICCION')


Select titulo, descriptores
from Libros
where contains (descriptores, '"EDAD MEDIA"')


Select titulo, descriptores
from Libros
where contains (descriptores, 'HISTORIA OR FILOSOFIA')


Select titulo, descriptores
from Libros
where contains (descriptores, '"IN*"' )


Select titulo, descriptores
from Libros
where contains (descriptores, 'ENSAYO NEAR CLASICA')


Select titulo, descriptores
from Libros
where contains (descriptores, 'INFORMATICA NEAR PROGRAMACION')


  • FreeText: Es como un buscador, busca coincidencias eliminando pronomb res.
select titulo
,descriptores
from libros where Freetext(Descriptores,'ENSAYO DE LA INFORMATICA')




Espero haber ayudado en algo. Hasta la próxima oportunidad!










  

No hay comentarios:

Publicar un comentario