aspx_espanol thread: =?Windows-1252?Q?Re:_=5Baspx=5Fespanol=5D_Re:_=5Baspx=5Fespanol=5D__Atrap?
=?Windows-1252?Q?ar_excepci=F3n_de_SQL?=
Bueno pues, primero tienes que tener instalada la componente "Full-text
Indexing Service" de SQLServer. Si vuelves a ejecutar la instalación, te
debe permitir agregar componentes. Cuando la tengas, verás en el Enterprise
Manager, al abrir tu base de datos, una carpeta llamada Full-text Catalogs.
Alli creas catálogos de indices. En cada catálogo especifícas qué tablas y
qué campos de estas (generalmente campos de texto) quieres que se indexen
para la búsqueda. Debes ejecutar la opción (con click-derecho sobre el
catálogo) de "Start Population" (puede ser "full" o "incremental") para que
cree los índices a partir de los datos en la tabla. esto último, lo puedes
programar para que se repita automáticamente (opción "Schedules...",
click-derecho sobre el catálogo). Esta es el SP que lo usa en mi DB:
PROCEDURE sp_cats_Search
@srchStr varchar(100)
AS
SELECT cits.*, kobs.KindOfBoss
FROM _dcM_CatItems cits LEFT OUTER JOIN _dcC_KindsOfBosses kobs
ON cits.IdKindOfBoss = kobs.IdKindOfBoss
WHERE cits.IdKindOfCat != 1 AND CONTAINS(cits.*, @srchStr)
presta atención al predicado "CONTAINS". Primero le digo los campos sobre
los que quiero la búsqueda. Están especificados todos los campos de la tabla
_dcM_CatItems, pero no todos ellos están incluidos en el catálogo
correspondiente (al cual no hay que mencionar por ningún lado). En el
parámetro @srchStr, le paso cadenas como "martillo AND clavo". El indice no
incluye palabras muy repetidas en el idioma (ej: los artículos, los
pronombres). En algún lado hay unos ficheros (uno por cada idioma
representativo, el español está incluido) que contienen palabras a desechar
de la indexación.
Espero que te oriente un poco. Está bastante claro en los Books Online,
para más detalles. Espero qe otros sepan de lo mismo (y más) y alguien me
responda mi pregunta.
Atte,
Juan Manuel Gómez Ramos
Lic. Ciencias de la Computación
Dirección de Sistemas de Información
Copextel, S.A. Tel: 336808 - 10, ext: 1065, 1064, 1011.
<cronos@d...>
----- Original Message -----
From: "Fernando Lobos" <flobos@b...>
To: "ASP.Net en Español" <aspx_espanol@p...>
Sent: Monday, March 18, 2002 11:42 AM
Subject: [aspx_espanol] Re: [aspx_espanol] Atrapar excepción de SQL
> Juan cmo busco con full text , me puedes orientar?
> ----- Original Message -----
> From: "Juan Manuel Gómez Ramos" <cronos@d...>
> To: "ASP.Net en Español" <aspx_espanol@p...>
> Sent: Thursday, March 14, 2002 3:23 PM
> Subject: [aspx_espanol] Atrapar excepción de SQL
>
>
> > Hola Lista:
> >
> > Estoy haciendo búsquedas sobre varios campos de una sola tabla
> incluida
> > en un catálogo de índices - usando el Full-text Indexing Service de SQL
> > Server. Cuando se realiza la búsqueda usando alguna palabra de las que
> están
> > en las listas de palabras ignoradas, me devuelve el error:
> >
> > "Error Type:
> > Microsoft OLE DB Provider for SQL Server (0x80040E14)
> > A clause of the query contained only ignored words.
> > /directory/dirsearch.asp, line 208"
> >
> > lo que hay en esa linea (208), es precisamente el llamado al SP que
> usa
> > el predicado CONTAINS. ¿Cómo puedo atrapar esa excepción (desde ASP) y,
de
> > ser posible, obtener las palabras de búsqueda que la provocaron? ¿Podría
> de
> > antemano, filtrar las palabras del usuario para sólo enviar al SP las
> demás
> > e indicar que las primeras no fueron usadas en la búsqueda?
> >
> > Gracias de antemano. Atte, Juanma.
> >
> > Juan Manuel Gómez Ramos
> > Lic. Ciencias de la Computación
> > Dirección de Sistemas de Información
> > Copextel, S.A. Tel: 336808 - 10, ext: 1065, 1064, 1011.
> > <cronos@d...>
> >
> >
> >
> > ---
> > Usted está suscrito a aspx_espanol como:
> > flobos@b...
> > Para darse de baja, envíe un mensaje en blanco a
> > %%email.unsub%%
> >
>
>
> ---
> Usted está suscrito a aspx_espanol como:
> cronos@d...
> Para darse de baja, envíe un mensaje en blanco a
> %%email.unsub%%
>
>