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

Terminaciones de palabras con IN BOOLEAN MODE

Estas en el tema de Terminaciones de palabras con IN BOOLEAN MODE en el foro de Mysql en Foros del Web. Hola!!, tengo problemas para utilizar IN BOOLEAN MODE en mi buscador, cuando busco 2 palabras como por ejemplo: "Delfín rosado" solo tiene encuenta la primer ...
  #1 (permalink)  
Antiguo 05/07/2012, 15:07
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 3
Busqueda Terminaciones de palabras con IN BOOLEAN MODE

Hola!!, tengo problemas para utilizar IN BOOLEAN MODE en mi buscador, cuando busco 2 palabras como por ejemplo: "Delfín rosado" solo tiene encuenta la primer palabra "delfín" y la segunda es ignorada completamente.

Les dejo el código y a continuación la explicación del mismo:

Código MySQL:
Ver original
  1. SELECT uDR.webTitulo, uDR.webDescripcion, uDR.webkeywords, uDR.weburl, SUM(uDR.priority) as SPriority
  2.  
  3. (SELECT s1.webTitulo, s1.webDescripcion, s1.weburl, s1.webkeywords, 3 as priority FROM webs s1 WHERE MATCH (webTitulo) AGAINST ('$frase*' IN BOOLEAN MODE))
  4.  
  5.  
  6. (SELECT s2.webTitulo, s2.webDescripcion, s2.weburl, s2.webkeywords, 2 as priority FROM webs s2 WHERE MATCH (webkeywords) AGAINST ('$frase*' IN BOOLEAN MODE))
  7.  
  8.  
  9. (SELECT s3.webTitulo, s3.webDescripcion, s3.weburl, s3.webkeywords, 1 as priority FROM webs s3 WHERE MATCH (webDescripcion) AGAINST ('$frase*' IN BOOLEAN MODE))) uDR
  10.  
  11. GROUP BY uDR.webTitulo, uDR.weburl, uDR.webDescripcion, uDR.webkeywords
  12.  
  13. ORDER BY SPriority DESC

Cuando alguien escribe en el buscador, como por ejemplo: "delfín rosado" este término se guarda en la variable $frase.

Luego se evalúa si $frase se encuentra en el titulo, la descripción o las keywords y a cada uno se le asigna un puntaje que se suma para posicionar los resultados.

Las palabras no las puedo separar ya que se encuentran en $frase, por eso solo añado un *. Utilizo la opción IN BOOLEAN MODE ya que si escribo la palabra en plural, como "delfines rosados" no se encuentran resultados.

Espero que puedan ayudarme, saludos y gracias!
__________________
Naica enciclopedia animal
  #2 (permalink)  
Antiguo 06/07/2012, 07:08
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: Terminaciones de palabras con IN BOOLEAN MODE

Hola Naica,

He creado un pequeño ejemplo (http://www.sqlfiddle.com/#!2/106aa/2) para comprender mejor lo que presentas, sin embargo, no entiendo muy bien el problema, específicamente cuando dices:
Cita:
solo tiene encuenta la primer palabra "delfín" y la segunda es ignorada completamente.
También tendrías que revisar bien el tema del operador * ya que se buscarían plurales pero no singulares. Revisa 12.9.2. Boolean Full-Text Searches
  #3 (permalink)  
Antiguo 06/07/2012, 11:09
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Terminaciones de palabras con IN BOOLEAN MODE

Cita:
Iniciado por wchiquito Ver Mensaje
Hola Naica,

He creado un pequeño ejemplo (http://www.sqlfiddle.com/#!2/106aa/2) para comprender mejor lo que presentas, sin embargo, no entiendo muy bien el problema, específicamente cuando dices: También tendrías que revisar bien el tema del operador * ya que se buscarían plurales pero no singulares. Revisa 12.9.2. Boolean Full-Text Searches
Lo que pasa es que al buscar 2 palabras solo tiene en cuenta la primera, por lo que los resultados solo son sobre la primer palabra y no sobre ambas.

Voy a dar otro ejemplo que vi ahora, si busco historia de google, aparece primero todos resultados de historia y luego aparece 1 de google y 1 de su historia.

Es como si separara las palabras y tuviera mayor importancia la primera.

Gracias por el ejemplo pero no me sirve ya que lo que se escribe queda guardado en la variable $frase como explique en el primer mensaje.
__________________
Naica enciclopedia animal
  #4 (permalink)  
Antiguo 06/07/2012, 13:45
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: Terminaciones de palabras con IN BOOLEAN MODE

Hola Naica,

Como puedes ver en el ejemplo que coloqué se buscan ambas palabras, no solo la primera como indicas.

Mi recomendación es que leas bien lo que se indica en la documentación 12.9.2. Boolean Full-Text Searches.

En mi opinión, tendrás que trabajar un poco lo que almacena la variable $frase para obtener la consulta correcta, en otro caso $frase ya debería contener los operadores necesarios.
  #5 (permalink)  
Antiguo 06/07/2012, 15:04
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Terminaciones de palabras con IN BOOLEAN MODE

Hace algunas semanas habías abierto un post preguntando lo mismo:

http://www.forosdelweb.com/f86/probl...-mode-1000292/

pero tal parece que no pusiste mucha atención a lo que te decía, de hecho te pedía también que revisaras la misma documentación que te está indicando wchiquito...

No esperes encontrar una respuesta sólo para copiar y pegar, sino que tienes qué probar hasta encontrar algo que te pueda servir.

Saludos
Leo
  #6 (permalink)  
Antiguo 06/07/2012, 15:50
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Terminaciones de palabras con IN BOOLEAN MODE

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hace algunas semanas habías abierto un post preguntando lo mismo:

http://www.forosdelweb.com/f86/probl...-mode-1000292/

pero tal parece que no pusiste mucha atención a lo que te decía, de hecho te pedía también que revisaras la misma documentación que te está indicando wchiquito...

No esperes encontrar una respuesta sólo para copiar y pegar, sino que tienes qué probar hasta encontrar algo que te pueda servir.

Saludos
Leo
Si, revise varias veces esa documentación, en español y en inglés (para saber si había algo distinto).

Cree un nuevo tema ya que no volví a recibir otra respuesta.

Hice pruebas como me lo indicaron pero no funcionan, ya que es una variable la que tiene las palabras, se que con explote se puede saber si una frase tiene 1 o mas palabras, pero para mi caso no funciona.

No se que función serviría para dividir todas las palabras de una variable y asignarle a cada una un operador distinto o igual... de hecho no tengo idea de si existe o no.

Saludos
__________________
Naica enciclopedia animal

Etiquetas: booleana, busquedas, buscadores
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 12:17.