Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta sql para buscador interno

Estas en el tema de consulta sql para buscador interno en el foro de Mysql en Foros del Web. veran, uso el like '%busqueda%' pero eso me arroja cualquier tema que contenga la busqueda exacta osea si pongo '%a%' me va a listar todos ...
  #1 (permalink)  
Antiguo 27/01/2016, 00:47
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 12 años, 3 meses
Puntos: 52
consulta sql para buscador interno

veran, uso el like '%busqueda%' pero eso me arroja cualquier tema que contenga la busqueda exacta
osea si pongo '%a%'
me va a listar todos los temas que he hecho por que todos tienen la letra a en su contenido.
que instruccion deberia usar para hacer un listado mas o menos asi como google?
donde solo me aparezca lo relevante de la letra a, o del tema, en vez de que me salga donde esta ese caracter..
de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 27/01/2016, 01:42
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: consulta sql para buscador interno

Y que es "lo revelante de la letra a"? SQL es un lenguaje de consulta, no te va a servir para categorizar si un resultado es o no más relevante que otro, a no ser que tengas una columna con un valor que represente su "relevancia".

Además, el que algo tenga o no relevancia depende del contexto de tu aplicación y creo que se trata de algo que se escapa del ámbito del SQL.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 27/01/2016, 06:08
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 5 meses
Puntos: 15
Respuesta: consulta sql para buscador interno

Si quieres algo así deberías crear un campo llamado palabras_clave y en el meter todas las palabras claves de tu artículo y allí usar el LIKE. Otra opción es que busques solo en los títulos de los artículos.
  #4 (permalink)  
Antiguo 27/01/2016, 06:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta sql para buscador interno

Cita:
Iniciado por minombreesmm Ver Mensaje
veran, uso el like '%busqueda%' pero eso me arroja cualquier tema que contenga la busqueda exacta
osea si pongo '%a%'
me va a listar todos los temas que he hecho por que todos tienen la letra a en su contenido.
que instruccion deberia usar para hacer un listado mas o menos asi como google?
donde solo me aparezca lo relevante de la letra a, o del tema, en vez de que me salga donde esta ese caracter..
de antemano gracias
Bueno, vamos a hacer un par de definiciones:
1) LIKE es para buscar patrones, no relevancias. Y usarlo con los comodines a ambos lados, además de de no permitir bsucar lo relevane resulta espantosamente ineficiente, ya que genera FULL TABLE SCAN en cualquier DBMS.
2) Para realizar busquedas por relevancia, primero debes determinar a qué le llamas "relevante". No hay un único criterio. Lo que tu consideres relevante puede no serlo para los criterios de otro buscador.
3) Cuando se habla de búsquedas por relevancia, a nivel de SQL, se está hablando de búsquedas basadas en expresiones regulares, donde lo relevante puede ser a) Donde más veces a parece, o b) donde menos veces aparece. Lo primero porque es donde más "hay", lo segundo es para evitar muchos resultados sin importancia (datos basura).
4) Google, como muchos otros motores de búsqueda, trabaja en forma estadística. No solo analiza las búsquedas de todo el mundo,sino además las que tu mismo haces... Por ende las sugerencias o resultados de "relevancia" están basados en búsquedas previas. No en búsquedas únicas al azar.

Dicho esto, la conclusión es simple: No puedes basar la relevancia solamente en cosas que hagas en una query de SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/01/2016, 10:21
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 12 años, 3 meses
Puntos: 52
Respuesta: consulta sql para buscador interno

Bueno, podría basar solo en el titulo pero no siempre contiene el tema principal allí.
por ejemplo
pongo "The flash capitulo 10"
y el contenido habla sobre ese capitulo, algo que pasó.. si el usuario quiere poner en la busqueda por ejemplo: flash pelea vs fulano..
no va a salir.
generar palabras claves, nose aun exactamente como debería hacer eso, al menos que ponga un campo asi como aqui que los usuarios puedan colocarlas..
aunque este sitio web los genera automaticamente.

y bueno ya que definí la relevancia, ahora van a faltar las expresiones regulares(lo mas dificil de programar)
he usado algunas cosillas para las urls amigables en mi htaccess, pero son cosas que investigue y ademas son muy simples.
una expresión regular de búsqueda imagino que debe ser bastante amplia y difícil de entender.
pero bueno, ya se a que me enfrento.
tratare de meter otros criterios como las votaciones etc. y un limit

Nota: Me confie usando ese like por que pones la frase completa y sale. claro siempre y cuando coincida toda..
pero veo que no es nada conveniente.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 27/01/2016 a las 10:34

Etiquetas: buscador, interno, sql
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




La zona horaria es GMT -6. Ahora son las 01:09.