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 tengo un problema con el MACTH y AGAINST espero pudieran ayudarme dejare unas imagenes que ilustran lo que pasa, sucede que eh puesto ya ...
  #1 (permalink)  
Antiguo 13/05/2013, 19:09
Avatar de uchi_pon  
Fecha de Ingreso: septiembre-2011
Mensajes: 180
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta problema con MATCH & AGAINST

Hola tengo un problema con el MACTH y AGAINST espero pudieran ayudarme dejare unas imagenes que ilustran lo que pasa, sucede que eh puesto ya mi tabla como MyISAM y tengo indeces FULLtext sobre un par de campos donde quiero hacer la busqueda entonces en el SQL de phpmyadmin pongo esto:

SELECT * FROM tblproducto WHERE MATCH (strNombre,strSEO) AGAINST('one peace');

one peace son 2 palabras que estan contenidas en uno de los datos insertados en los campos strNombre y strSEO asi que deberia de mostrarme un resultado pero no lo hace me da algo como un error:

#1191 - Can't find FULLTEXT index matching the column list



  #2 (permalink)  
Antiguo 13/05/2013, 21:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con MATCH & AGAINST

Cita:
#1191 - Can't find FULLTEXT index matching the column list
Pues dice que no puede encontrar un ídice FULLTEXT que contenga las columnas indicadas en la consulta.
Esto significa lo que de los índices FULLTEXT que tienes, ninguno fue creado con esas dos columnas al mismo tiempo. La idea es que si quieres usar un MATCH() AGAINST(), debes haber creado un FULLTEXT sobre los campos que pones en el MATCH al mismo tiempo, y no por separado.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/05/2013, 12:13
Avatar de uchi_pon  
Fecha de Ingreso: septiembre-2011
Mensajes: 180
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Respuesta: problema con MATCH & AGAINST

Ahora que lo dices, primero cree esos campos y luego les puse en el SQL:

ALTER TABLE 'tblproducto' ASS FULLTEXT(
'strNombre'
)

aunque no entiendo bien lo que dices de que fue por separado, no se si dices que desde que cree el campo debia hacerlo fulltext, o que si el code para convertir los campos en indices fulltext debia ser los 2 a la vez algoa si :

ALTER TABLE 'tblproducto' ASS FULLTEXT(
'strNombre','strSEO'
)

O estoy entendiendo mal y no se trata de ninguna de las 2 cosas que estoy pensando?
  #4 (permalink)  
Antiguo 14/05/2013, 12:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con MATCH & AGAINST

Vamos a ver si te queda más claro:
Cita:
#1191 - Can't find FULLTEXT index matching the column list
Significa:
Cita:
#1191 - No se puede encontrar un índice FULLTEXT que coincida con la lista de columnas.
¿Cómo supones que se crean los índices cuando usas más de una columna?
Simple: cada clave usa las columnas indicadas , en el orden indicado, como entrada de clave. Si usas dos columnas en el MATCHING(), esas mismas columnas deben estar como clave de entrada del indice...

Por cierto: No uses apóstrofes cuando pongas nombres de columnas.
Esto está mal:
Código MySQL:
Ver original
  1. ALTER TABLE 'tblproducto' ASS FULLTEXT(
  2. 'strNombre','strSEO'
  3. )

debe ir así:
Código MySQL:
Ver original
  1. CREATE FULLTEXT INDEX nombreindice ON tbl_tblproducto(strNombre, strSEO)

Creación de índices
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 14/05/2013 a las 13:12
  #5 (permalink)  
Antiguo 14/05/2013, 12:51
Avatar de uchi_pon  
Fecha de Ingreso: septiembre-2011
Mensajes: 180
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: problema con MATCH & AGAINST

te agradesco mucho tu paciencia, aun no logro entender casi nada pero investigare mas sobre esto para poder comprenderlo y solucionar este error.
EDIT:
ya lo eh conseguido gracias a lo que me dijiste aunque aun me falta algo, lo que eh echo es eliminar los 2 indices que tenia y volver a sacar solo un indice el de strNombre y despues volvi a intentar la consulta pero obiamente solo usando el MATCH en strNombre y funciono por fin este es el code que use:

Código:
SELECT * FROM tblproducto WHERE MATCH (strNombre) AGAINST('one peace');
Despues crei haber entendido que el problema es que primero cree el indice para strSEO y en la consulta los estaba poniendo al revez asi que ahora de nuevo saque el indice de strSEO y en la consulta deje de nuevo el code como al principio:

Código:
SELECT * FROM tblproducto WHERE MATCH (strNombre,strSEO) AGAINST('one peace');
y de nuevo tuve el mismo problema.

aunque lo primero funciono tambien necesito incluir el otro campo strSEO, espero no sea mucha molestia que me dieras algun consejo o quisa alguna pagina de el manual cualquier ayuda me servira seguramente.
muchas Gracias.

Última edición por uchi_pon; 14/05/2013 a las 14:34

Etiquetas: sql
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 19:50.