Foros del Web » Programando para Internet » PHP »

La busqueda PHP - MySQL con FULLTEXT no me encuentra algunas palabras..

Estas en el tema de La busqueda PHP - MySQL con FULLTEXT no me encuentra algunas palabras.. en el foro de PHP en Foros del Web. Como bien lo dice el titulo, si alguien me podria explicar por favor porque, por ejemplo, al realizar una busqueda con PHP y MySQL hay ...
  #1 (permalink)  
Antiguo 18/11/2009, 11:25
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
La busqueda PHP - MySQL con FULLTEXT no me encuentra algunas palabras..

Como bien lo dice el titulo, si alguien me podria explicar por favor porque, por ejemplo, al realizar una busqueda con PHP y MySQL hay palabras que no me las reconoce..

Por ejemplo,

La tabla contiene una frase que se llama "Tienda Rabad".. pero al buscar la palabra "Rabad" no me da coincidencias... Tampoco las iniciales, es decir, si por ejemplo tengo en la tabla una palabra "CGI" y busco eso, no me lo encuentra. Lo demas sin drama.. no me habia pasado, o al menos nunca me di cuenta de este detalle

Estoy empleando un modelo tipico de busqueda con indices Fulltext en las tablas MySQL, y la sentencia SQL del PHP es con un Match Against IN BOOLEAN MODE..

Ejem:

Código PHP:
$query_Rs "SELECT empresa, rubro, telefonos, movil, direccion, ciudad, mail, encargado, plan, descripcion,
            MATCH (empresa, rubro, telefonos, movil, direccion, ciudad, mail, encargado, plan, descripcion)
            AGAINST ('%$buscar%' IN BOOLEAN MODE) AS coincidencias
            FROM empresas
            WHERE MATCH (empresa, rubro, telefonos, movil, direccion, ciudad, mail, encargado, plan, descripcion)
            AGAINST ('%$buscar%' IN BOOLEAN MODE)
            ORDER BY coincidencias DESC"

Todas las tablas que menciono en el SELECT tienen indices Fulltext, aunque exagero un poco con las tablas para ejemplificar mejor..

Entiendo que cuando hay demasiadas coicidencias de palabras, ya el Fulltext no los muestra, pero en este caso, esas iniciales y palabras no se repiten mas de 1 vez

Agradeczoc la ayuda urgente.. gracias.. si se me paso algo, me lo dicen por fa
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #2 (permalink)  
Antiguo 19/11/2009, 14:54
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: La busqueda PHP - MySQL con FULLTEXT no me encuentra algunas palabras..

Yo no sé si peco por inocente porque parece que tu conociemiento de SQL es bueno, pero yo cuando quiero hacer lo que dices utilizo LIKE en vez de AGAINST y ello me busca coincidencias incluso sin diferenciar mayúsculas o minúsculas entre otras ventajas.
  #3 (permalink)  
Antiguo 19/11/2009, 15:08
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: La busqueda PHP - MySQL con FULLTEXT no me encuentra algunas palabras..

Cita:
Iniciado por jenusys Ver Mensaje
Yo no sé si peco por inocente porque parece que tu conociemiento de SQL es bueno, pero yo cuando quiero hacer lo que dices utilizo LIKE en vez de AGAINST y ello me busca coincidencias incluso sin diferenciar mayúsculas o minúsculas entre otras ventajas.
Fulltext es mucho mas eficiente que Like


loncho_rojas, prueba sin IN BOOLEAN MODE, a mi me funciona sin eso.

Código PHP:
$query_Rs "SELECT *,
            MATCH (empresa, rubro, telefonos, movil, direccion, ciudad, mail, encargado, plan, descripcion)
            AGAINST ('%$buscar%' ) AS coincidencias
            FROM empresas
            WHERE MATCH (empresa, rubro, telefonos, movil, direccion, ciudad, mail, encargado, plan, descripcion)
            AGAINST ('%$buscar%')
            ORDER BY coincidencias DESC"

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 20:47.