Im 'tratando de hacer una búsqueda de texto completo con mysql, para que coincida con una cadena. El problema es que está devolviendo resultados extraños en primer lugar.MySQL Match Texto completo
Por ejemplo, la cadena 'Passat 2.0 TDI':
AND MATCH (
records_veiculos.titulo, records_veiculos.descricao
)
AGAINST (
'passat 2.0 tdi' WITH QUERY EXPANSION
)
está volviendo esto como el primer resultado (los demás están bien):
Volkswagen Passat Variant 1.9 TDI- ANO 2003
cual es incorrecto, ya que no hay "2.0" en este ejemplo.
¿Qué podría ser?
edición: También, ya que este será probablemente una gran base de datos (que prevén hasta 500.000 registros), será este método de búsqueda sea lo mejor para sí mismo, o sería mejor instalar cualquier otro motor de búsqueda como Esfinge? O en caso de que no lo haga, ¿cómo mostrar resultados relevantes?
Edit2: Para el registro, a pesar de la pregunta que se marca como respondida, el problema con los delimitadores de MySQL persiste, por lo que si alguien tiene una sugerencia sobre cómo escapar delimitadores, sería apreciado y vale la pena los 500 puntos en estaca. El sollution he encontrado para aumentar el conjunto de resultados fue la de sustituir con la expansión CONSULTA EN MODO con BOOLEANA, utilizando operadores para forzar el motor para obtener las palabras que necesitaba, como:
AND MATCH (
records_veiculos.titulo, records_veiculos.descricao
)
AGAINST (
'+passat +2.0 +tdi' IN BOOLEAN MODE
)
no resolvió en absoluto, pero al menos la relevancia de los resultados cambió significativamente.
+1 No puedo pensar por qué esto fue votado negativamente. Muy cierto. '2.0' escapado o no se ignorará a menos que se haya cambiado la configuración predeterminada del servidor para los índices' FULLTEXT'. – Orbling
@Yoda: lea aquí, especialmente sobre 'ft_max_word_len': http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html – Orbling
¿alguna sugerencia sobre cómo escapar de los caracteres? He intentado usar '\', sin éxito. – yoda