Foros del Web » Programando para Internet » ASP Clásico »

buscador de varias palabras mediante un solo textbox

Estas en el tema de buscador de varias palabras mediante un solo textbox en el foro de ASP Clásico en Foros del Web. hola a todos, mi consulta es la siguiente: ¿es posible realizar una búsqueda en una base de datos, de varias palabras ingresadas mediante un solo ...
  #1 (permalink)  
Antiguo 24/03/2009, 06:23
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 18 años, 8 meses
Puntos: 1
buscador de varias palabras mediante un solo textbox

hola a todos, mi consulta es la siguiente: ¿es posible realizar una búsqueda en una base de datos, de varias palabras ingresadas mediante un solo textbox? pero no me interesa que la búsqueda se haga como si lo ingresado fuera una frase, sino como si fueran palabras sueltas. ejemplo: si ingreso en el textbox las palabras resaltador verde necesito que encuentre estas palabras aunque en la culumna de la tabla de la bd la cadena guardada diga resaltador fino verde. por si no se entendió bien, la busqueda no tiene que ser la cadena exacta que se ingrese en el textbox, sino todas las palabras incluidas en el mismo.
desde ya, agradezco su colaboración.
  #2 (permalink)  
Antiguo 24/03/2009, 07:49
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: buscador de varias palabras mediante un solo textbox

En terminos genericos, la solucion mas simple es usar la clausula LIKE

SELECT * FROM TABLA WHERE CAMPO LIKE '%resaltador%verde%'

Esto traera todos los campos que tengan la palabra resaltador seguida de verde.
ahora, no encontrara los campos que tengan la palabra verde seguida de resaltador.

Como todo LIKE tienes sus pros y contras.
Es sencilla de implementar, pero no es rapida la consulta.

http://technet.microsoft.com/es-es/l.../ms179859.aspx



Una solucion mas evolucionada es usar Tablas de indice de texto o usar un full text search.

Checa este articulo para clarificarte al respecto

http://www.developer.com/db/article.php/3446891


y otra mas
http://en.wikipedia.org/wiki/Full_text_search
  #3 (permalink)  
Antiguo 24/03/2009, 08:10
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: buscador de varias palabras mediante un solo textbox

Hola en la sentencia del sql le pones al hacer el where pones algo asi
WHERE (concepto LIKE '%resaltador verde%') eso indica que todas las palabras que contengan esa frase seran mostradas. Pero no se si te servira ya que esto es solo para un caso y si tu lo necesitas para distintos casos habria que afinar un poco la sentencia . No la probe porque estoy en el trabajo
Que estes muy bien
  #4 (permalink)  
Antiguo 24/03/2009, 08:38
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: buscador de varias palabras mediante un solo textbox

Hola

Creo entender que lo que necesitas es que en la cadena se encuentre uno de los valores a buscar. Entonces prodrías hacer lo que te comenta Muzztein y añadirle un ciclo

Código asp:
Ver original
  1. pbuscar = "resaltador-verde"
  2.  
  3. arr = split(pbuscar,"-")
  4.  
  5. sql = "SELECT * FROM TABLA WHERE "
  6. for i = 0 to ubound(arr)
  7. if i <> 0 then
  8. sql = sql & " or "
  9. end if
  10. sql = sql & "CAMPO LIKE '%arr(i)%'
  11. next

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 24/03/2009, 09:23
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: buscador de varias palabras mediante un solo textbox

Mi pregunta sige sige siendo la misma es lo unico que necesitas buscar solo esa palabra o puede ser una entre muchas, si es asi las sentencias del sql que te hemos dado no te sirven porque
se refieren solo a buscar esa palabra en especifico.

Si alguien me puede ayudar con la pregunta que hice el otro dia de las tablas dinamicas estare muy agradecido

Saludos a todos y gran foro
  #6 (permalink)  
Antiguo 24/03/2009, 10:03
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: buscador de varias palabras mediante un solo textbox

Ante todo, muchas gracias Muzztein, TonyChile y Adler por sus prontas respuestas. Voy a revisar los enlaces y testear sus consejos, y les aviso. Por lo pronto, voy a tratar de explicar mejor el planteo:

Tengo una bd en una intranet con los artículos que vende la empresa y su aplicación (en este caso se trata de repuestos para automóviles). Por otra parte, mediante iexplorer un usuario accede a un buscador que tiene un textbox llamado consulta. Si el usuario ingresa aquí la palabra FORD, el script realiza una búsqueda en la bd y trae todos los artículos que en alguna columna de la bd contenga la palabra FORD. Hasta allí todo bien. Pero algunos artículos se aplican a distintas marcas de vehículos, por lo que la columna de la tabla que contiene la descripción puede decir correa sincronica ford, volkswagen, audi. Al ser así, si el usuario ingresa en el buscador correa sincronica ford la consulta le traera como respuesta este articulo, pero si ingresa correa sincronica audi la consulta responde que no se encontraron registros, ya que no está buscando las palabras ingresadas de una forma individual, sino que las busca considerándolas una frase, por lo tanto, al ingresar correa sincronica audi responde que no hay registros, y si la frase ingresada es correa sincronica ford devuelve correa sincronica ford, volkswagen, audi. Espero se entienda lo que quiero decir.
Muchas gracias y saludos.
  #7 (permalink)  
Antiguo 24/03/2009, 16:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 18 años, 8 meses
Puntos: 1
De acuerdo Respuesta: buscador de varias palabras mediante un solo textbox

Hola a todos otra vez, quería agradecerles nuevamente por su ayuda y comentarles que me sirvió la porción de código que posteó Adler, con una pequeña modificación:

pbuscar = request.form("consulta")

para que busque cualquier grupo de palabras ingresada por el usuario en el textbox consulta, y:

sqltxt = sqltxt & " and "

para que no traiga un registro que contenga una u otra palabra, sino que traiga el registro que tenga todas las palabras ingresadas.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 11:36.