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

[SOLUCIONADO] Fulltext con 2 términos de búsqueda

Estas en el tema de Fulltext con 2 términos de búsqueda en el foro de Mysql en Foros del Web. Hola, estoy probando la búsqueda fulltext que, la verdad, va de maravilla. Me encuentro con un inconveniente, cuando busco por 2 o mas palabras, el ...
  #1 (permalink)  
Antiguo 22/05/2013, 03:25
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Fulltext con 2 términos de búsqueda

Hola, estoy probando la búsqueda fulltext que, la verdad, va de maravilla.

Me encuentro con un inconveniente, cuando busco por 2 o mas palabras, el resultado se distorsiona un poco. Es decir si una de las 2 palabras aparece mucho en un texto, le da más "puntos" (ratio) que si las 2 aparecen por ejemplo 1 vez.

Yo creo que esto propicia que los resultados no sean muy coherentes.

Mi pregunta es... para búsquedas de 2 palabras (o más), hay alguna forma de decirle al fulltext que sólo muestre los resultados en los que aparezcan esas 2 palabras de búsqueda (y no sólo 1)?
  #2 (permalink)  
Antiguo 22/05/2013, 08:02
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Fulltext con 2 términos de búsqueda

Hola Humanista:

No sé como estás realizando la búsqueda... hubiera sido interesante que postearas también el código de la consulta que intentaste hacer, para ver dónde se puede mejorar... por lo pronto puedes echarle un vistazo a las Búsquedas Booleanas

Observa en la parte de los ejemplos:

Cita:
'+apple +juice'

Encuentra registros que contengan ambas palabras.
Creo que esto es lo que estás buscando. haz la prueba y nos comentas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 28/05/2013, 02:19
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Fulltext con 2 términos de búsqueda

Buenas. He tardado tiempo en contestar porque he estado haciendo pruebas. Os comento.

Nada más leer la documentación la verdad es que me defraudó lo de las búsquedas booleanas porque no ordena la búsqueda por el ratio en cuestión. Estuve a punto de descartar usar esta opción pero enseguida me dí cuenta de que necesitaba sí o sí que apareciesen ambas palabras en el elemento a buscar, por lo que me decidí a usarla.

Lo arreglé de esta forma. Primero amplié el LIMIT del SELECT, ya que en la búsqueda me encontraba registros de ratios bajos que no me servían. Esto puede hacer la consulta un poco más lenta (realmente imperceptible) pero me asegura capturar registros también con ratios más altos, que son los que necesito.

Hecho esto ordené el array donde almacenaba estos registros por el ratio en cuestión, de forma DESCendente. Corté el array hasta los 50 registros, que es lo que necesito, y la volví a ordenar, esta vez por fecha, ya que lo saco cronológicamente.

Tras muchas pruebas tengo que decir que las búsquedas booleanas (a pesar de esa incidencia de no ordenar los registros por ratio) funcionan muy bien. La sensación que tengo es la de haber construido un muy buen buscador que "acierta" cada vez que busca.

Gracias leonardo_josue!

Etiquetas: fulltext
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 13:07.