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

Problema con MATCH AGAINST

Estas en el tema de Problema con MATCH AGAINST en el foro de Mysql en Foros del Web. Hola!! Estoy utilizando MATCH AGAINST en mi buscador y quiero que me busque tanto si es una palabra, los registros que contengan dicha palabra o ...
  #1 (permalink)  
Antiguo 18/01/2011, 07:25
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Problema con MATCH AGAINST

Hola!!

Estoy utilizando MATCH AGAINST en mi buscador y quiero que me busque tanto si es una palabra, los registros que contengan dicha palabra o una derivada o como si se busca más de una palabra que me encuentre los registros que contengan todas las palabras o derivadas pero no me lo hace.

Esta es la query que tengo:

Código MySQL:
Ver original
  1. SELECT T.*,TT.prtc__col_name AS '__colName__',
  2. TT.malg__code AS '__code__',TT.text AS '__text__'
  3. FROM prtx__articulos AS T
  4. LEFT JOIN prtx_prtc_malg AS TT ON T.ref=TT.prtx__ref
  5. WHERE T.ref LIKE "%simétrica%" OR MATCH(TT.text) AGAINST ('+*ilicona* +*simetrica*' IN BOOLEAN MODE)

Utilizo LIKE para un campo en concreto y para otro el match, mi problema viene con el match. Me he leído la documentación de mysql y por lo que pone, para que tenga en cuenta los registros donde salgan ambas palabras hay que ponerle el + delante.
Si pongo: MATCH(TT.text) AGAINST ('+silicona +simetrica' IN BOOLEAN MODE) me devuelve los registros correctos pero si lo combino con el operador * para que me retorne palabras derivadas sólo me lo hace bien si el * está al final de la palabra: MATCH(TT.text) AGAINST ('+silicona +simetrica*' IN BOOLEAN MODE), me devuelve los registros que tienen silicona y simetricas por ejemplo.
Ahora, si quiero que me retorne tb los registros que tengan "asimetricas" por ejemplo y hago el query que he mostrado al principio no me lo retorna bien.

El problema viene al poner el operador * delante pero no se el motivo. ¿Alguien puede decirme que estoy haciendo mal?

Gracias!!
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 19/01/2011, 09:34
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con MATCH AGAINST

Solucionado:

Después de bucear y bucear por internet he encontrado una web donde explica pq no me funciona * si lo pongo delante de la palabra y la explicación es muy sencilla: "* Indica cero o más caracteres, y debe ser usado únicamente al final de una palabra". Así que caso resuelto.

Os dejo la página donde lo he encontrado por si le puede servir a alguien ya que da buenos ejemplos:
http://www.webnova.com.ar/articulo.php?recurso=543
__________________
Perdida en el mundo del conocimiento

Etiquetas: match
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 09:40.