Consultas con Contains...!

17/05/2006 - 01:14 por AlejoR | Informe spam
Que tal grupo.
Haciendo una consulta con full-text, tengo el sigueinte problema.
Tengo cinco parametros los cuales son los que se hace la busqueda sobre 5
campos indexados textual.

where contains(campo1, @valor1) and
contains(campo2, @valor2) and
contains (campo3, @valor3) and
contains (campo4, @valor4) and
contains (campo5, @valor5)

pero la idea es que se puede pasar los 5 parametros como tambien se puede
pasar 1 o 2 o 3 o 4 parametros.
Cuando se pasan menos de los 5 parametros los restantes van en null o '' y
el contains saca error porque no se puede dejar la consulta con valor nulo
en la busqueda con full-text

Entonces como se hace para que se pueda hacer esas consultas?

He pensado armar la consulta con sql-dinamico...pero solo si no encuentro
una solucion...Ultimo recurso...

Gracias Mil

Preguntas similare

Leer las respuestas

#1 AlejoR
17/05/2006 - 01:26 | Informe spam
Me surgue una pregunta. Para el FREETEXT y CONTAINS existe un comodin...que
es el * (viendo los BOL). Si solo se pone en el CONTAINS (Campo1, '"*"')
dice error por ONLY IGNORED WORDS...pero si se puede configurar el fulltext
para que el * funcione como comodin realmente, en donde se haría????

Me sirve esto para casos en que el valor venga nulo y que asuma que es una
consuta de todo.

Gracias!
"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Haciendo una consulta con full-text, tengo el sigueinte problema.
Tengo cinco parametros los cuales son los que se hace la busqueda sobre 5
campos indexados textual.

where contains(campo1, @valor1) and
contains(campo2, @valor2) and
contains (campo3, @valor3) and
contains (campo4, @valor4) and
contains (campo5, @valor5)

pero la idea es que se puede pasar los 5 parametros como tambien se puede
pasar 1 o 2 o 3 o 4 parametros.
Cuando se pasan menos de los 5 parametros los restantes van en null o '' y
el contains saca error porque no se puede dejar la consulta con valor nulo
en la busqueda con full-text

Entonces como se hace para que se pueda hacer esas consultas?

He pensado armar la consulta con sql-dinamico...pero solo si no encuentro
una solucion...Ultimo recurso...

Gracias Mil


Respuesta Responder a este mensaje
#2 Isaias
17/05/2006 - 01:55 | Informe spam
No lo se, nunca he utlizado CONTAINS, pero ¿que pasa si lo cambias asi?

contains(campo1, ISNULL(@valor1+'*', '*'))
Saludos
IIslas


"AlejoR" escribió:

Me surgue una pregunta. Para el FREETEXT y CONTAINS existe un comodin...que
es el * (viendo los BOL). Si solo se pone en el CONTAINS (Campo1, '"*"')
dice error por ONLY IGNORED WORDS...pero si se puede configurar el fulltext
para que el * funcione como comodin realmente, en donde se haría????

Me sirve esto para casos en que el valor venga nulo y que asuma que es una
consuta de todo.

Gracias!
"AlejoR" escribió en el mensaje
news:
> Que tal grupo.
> Haciendo una consulta con full-text, tengo el sigueinte problema.
> Tengo cinco parametros los cuales son los que se hace la busqueda sobre 5
> campos indexados textual.
>
> where contains(campo1, @valor1) and
> contains(campo2, @valor2) and
> contains (campo3, @valor3) and
> contains (campo4, @valor4) and
> contains (campo5, @valor5)
>
> pero la idea es que se puede pasar los 5 parametros como tambien se puede
> pasar 1 o 2 o 3 o 4 parametros.
> Cuando se pasan menos de los 5 parametros los restantes van en null o '' y
> el contains saca error porque no se puede dejar la consulta con valor nulo
> en la busqueda con full-text
>
> Entonces como se hace para que se pueda hacer esas consultas?
>
> He pensado armar la consulta con sql-dinamico...pero solo si no encuentro
> una solucion...Ultimo recurso...
>
> Gracias Mil
>
>



Respuesta Responder a este mensaje
#3 Antonio Soto
21/05/2006 - 23:47 | Informe spam
Hola Alejo.

Debes de quitarlo de fichero de ruídos. Buscan en el directorio FTDATA\SQL
Server el fichero noise.esn (suponiendo que utilizas castellano como idioma,
ya que verás que existe un ficher para cada uno de ellos) Eliminas de ahí el
* y reinicias el servicio.

Saludos.


Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"AlejoR" escribió en el mensaje
news:
Me surgue una pregunta. Para el FREETEXT y CONTAINS existe un
comodin...que es el * (viendo los BOL). Si solo se pone en el CONTAINS
(Campo1, '"*"') dice error por ONLY IGNORED WORDS...pero si se puede
configurar el fulltext para que el * funcione como comodin realmente, en
donde se haría????

Me sirve esto para casos en que el valor venga nulo y que asuma que es una
consuta de todo.

Gracias!
"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Haciendo una consulta con full-text, tengo el sigueinte problema.
Tengo cinco parametros los cuales son los que se hace la busqueda sobre 5
campos indexados textual.

where contains(campo1, @valor1) and
contains(campo2, @valor2) and
contains (campo3, @valor3) and
contains (campo4, @valor4) and
contains (campo5, @valor5)

pero la idea es que se puede pasar los 5 parametros como tambien se puede
pasar 1 o 2 o 3 o 4 parametros.
Cuando se pasan menos de los 5 parametros los restantes van en null o ''
y el contains saca error porque no se puede dejar la consulta con valor
nulo en la busqueda con full-text

Entonces como se hace para que se pueda hacer esas consultas?

He pensado armar la consulta con sql-dinamico...pero solo si no encuentro
una solucion...Ultimo recurso...

Gracias Mil






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida