Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2007
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Question Aplicación con buscadores tipo google o yahoo

Buen día, estoy haciendo una aplicación en delphi y firebird 1.5.1.
Quisiera saber si se puede hacer un buscador tipo google, por ejemplo: quiero buscar artículos en la BD que tengan las siguientes características. "ddr" y "512". Para esto sería bueno escribir en la cajita de texto del buscador ddr + 512, a la usanza de yahoo y google y cualquier buscador de la red.
No pretendo que mi buscador tenga tantas opciones de búsqueda como estos motores de búsqueda (+, -, near, and, or, not...) pero me conformaría con usar el + solamente.
Bueno, espero haber sido claro.
Muchas gracias desde ya.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 13-02-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Ummmm.... no es tan simple....

Cita:
Empezado por santiago14
No pretendo que mi buscador tenga tantas opciones de búsqueda como estos motores de búsqueda (+, -, near, and, or, not...) pero me conformaría con usar el + solamente.
Santiago14, entiendo lo que deseas. Pero realizar un buscador a ese estilo, no es tan sencillo con hacer un único:
Código SQL [-]
select tus_campos from tus_tablas where condiciones_de_busqueda

Primeramente tienes que saber bien el rango de tu búsqueda: ¿Sobre que campos deberá buscar?¿1,2,...20?¿Cuantas tablas?¿1,2,10?¿Cuántas condiciones?¿1,2... o algo dificil.... 6? Si puedes responder a esas preguntas se puede limitar la búsqueda.

Lo ideal es "armar" una consulta dependiendo de las condiciones que impones a la búsqueda. Y para obtener una condición "+" en un buscador lo más simple es:
Código SQL [-]
 select tus_campos from tus_tablas WHERE tu_campo_condicion1 = Condicion1 AND tu_campo_condicion2 = Condicion2

Remarco con negrita para que veas... de lo que hablo. Tus_campos puede ir desde uno y valla uno a saber cuantos más, y todo dependiendo de las tablas que intervienen.

¿Quieres buscar globalmente?¿En toda la base de datos?

Si bien no dije algo que tal vez tu ya sepas, quiero hacerte notar que armar una búsqueda como esas no es algo sencillo.

Creo que una vez se ha tratado algo parecido. Busca en los foros.

Si puedes especificar mejor cuales son tus objetivos y lo que pretendes, sería mejor para quienes lean este hilo y pueda concentrar sus esfuerzos en algo concreto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 13-02-2007
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Si lo que quieres es conocer algo de la metodología que se oculta detrás de la construcción de un buscador de estas características, te puedes pasar por la Web del amigo JM, donde hay dos artículos la mar de interesantes. En concreto, en http://www.lawebdejm.com/prog/delphi...or_google.html

Un saludo
Responder Con Cita
  #4  
Antiguo 13-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿y por qué implementar el "+"? ¿por qué no quitarlo?, es decir, no creo necesario que escriba el símbolo +, si no quiere algo, que no lo escriba.

Por otro lado coincido con Delphius, no creo conveniente dar al usuario una sola caja de búsqueda y complicarnos la vida con desglosar el contenido que escribe. Por otro lado, seguro que los resultados no son lo que espera.

Con esto quiero decir, que quizás sea mejor poner 3 cajas de texto:
- Tipo de artículo: Memorias
- tipo de RAM : ddr
- Velocidad : 512

Así no obtendremos los resultados de las placas bases u otros artículos que el usuario no busca.

Para hacer esto, ultimamente estoy usando un TStringList para construir las claúsula Where de dicha consulta, más o menos algo así:
Código Delphi [-]
var Where :Tstringlist;
begin
  Where.Add( 'where articulo like ' + quotedstr('%'+ cajaArticulo.text+ '%')); // el tipo de artículo es imprescindible que lo escriba

  if Trim(cajaTipo.text)<> EmptyStr then
    Where.Add(' and tipo = ' quotedstr(cajaTipo.TExt);

  if Trim(cajaVelocidad.Text)  <>EmptyStr then
    Where.Add('and Velocidad = ' + cajaVelocidad.Text);

query1.sql.text := 'select * from tabla ' + Where.Text;
query1.Open;

Bueno... más o menos, en realidad uso un Objeto creado por mi que controla algunas cosillas más.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 13-02-2007
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Bueno, si deseas un buscador como "google" necesitas un motor de busqueda, no una base de datos.

Los motores de busqueda funcionan bajo algoritmos diferentes a las bases de datosy tienen caracteristicas que permiten que escale el sistema sin perder rendimiento con grandes cantidades de informacion... mucho mejor que un motor de BD, el que sea.

Te recomiendo http://sourceforge.net/projects/mutis (es un proyecto Open Source, soy el programador de este). Esta actualmente para .NET - apenas este mes arranco con la compatibilidad para Win32 y quizas luego linux- asi sea para fines educativos.

Cualquier cosa, con mucho gusto pregunta!
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 14-02-2007
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Thumbs up Respuestas...

Gracias por las respuestas. Todos uds. tienen razón, por supuesto que un motor de búsqueda es distinto a una BD, no hay discusión acerca de ello.
No pretendo llegar tan lejos con mis búsquedas, pero a mi parecer sería mas amable al usuario permitirle usar un símbolo de concatenación como el + en lugar de ponerle varias cajas de texto, igual la idea de las cajas de texto me parece la mas acertada.
No he tenido tiempo de leer los links que me recomendaron pero en breve los leo y si puedo cooperar con ellos lo haré gustoso.

Yendo al grano, solamente quería usar la simbología de los buscadores para simplificar buscadores que ya tienen algo de complejidad en la aplicación que estoy realizando. Tampoco es cuestión de matarse haciendo algo que por un lado ya está inventado y por otro no tiene sentido si con 2 cajas de texto lo arreglamos.
Desde ya les agradezco.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buscadores dango PHP 4 25-02-2013 17:37:57
Nueva aplicación de google jhonny Noticias 0 06-02-2007 23:40:27
Google ofrece un nuevo servicio gratuito para crear buscadores especializados Neftali [Germán.Estévez] Noticias 0 24-10-2006 11:39:40
Google Talk - El cliente de mensajería de Google dec Noticias 18 26-08-2005 09:11:39


La franja horaria es GMT +2. Ahora son las 10:25:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi