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 originalSELECT uDR.webTitulo
, uDR.webDescripcion
, uDR.webkeywords
, uDR.weburl
, SUM(uDR.priority
) as SPriority
(SELECT s1.webTitulo
, s1.webDescripcion
, s1.weburl
, s1.webkeywords
, 3 as priority
FROM webs s1
WHERE MATCH (webTitulo
) AGAINST
('$frase*' IN BOOLEAN MODE
))
(SELECT s2.webTitulo
, s2.webDescripcion
, s2.weburl
, s2.webkeywords
, 2 as priority
FROM webs s2
WHERE MATCH (webkeywords
) AGAINST
('$frase*' IN BOOLEAN MODE
))
(SELECT s3.webTitulo
, s3.webDescripcion
, s3.weburl
, s3.webkeywords
, 1 as priority
FROM webs s3
WHERE MATCH (webDescripcion
) AGAINST
('$frase*' IN BOOLEAN MODE
))) uDR
GROUP BY uDR.webTitulo
, uDR.weburl
, uDR.webDescripcion
, uDR.webkeywords
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!