2011-01-06 13 views
5

He configurado un índice de texto completo en una pequeña selección de registros en 3 campos (intenté una combinación de los 3 también y tuve el mismo resultado) y algunos las palabras devuelven los resultados bien, pero algunas como 'house' y 'australia' no (curiosamente, 'australia' y 'home' lo hacen).búsqueda de texto completo MySQL no funciona para algunas palabras como 'casa'

Parece un comportamiento extraño. Si agrego "WITH QUERY EXPANSION" obtengo resultados, pero ahora no son los más relevantes.

¿Alguien tiene alguna idea de por qué es esto? De lo contrario, tendré que recurrir al uso de búsquedas LIKE, y preferiría tener la relevancia incluida.

Respuesta

10

Podría ser un par de cosas:

  • MySQL tiene una lista predeterminada de 'Stop' palabras que no están incluidas en una búsqueda de texto completo - http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html. 'house' y 'australia' no parecen estar en esa lista, pero otras palabras que busque podrían verse afectadas por ella.
  • Cualquier palabra que aparece en más del 50% de las filas o tiene 3 letras o menos en la base de datos también se considera una palabra de finalización. El 50% es particularmente fácil de atrapar si solo está probando la búsqueda de texto completo en una tabla con solo unas pocas filas.

Si busca en Google "palabras de detención de mysql" Encontrará mucho más al respecto, ya que es una de esas cosas que atrapa a mucha gente.

+0

Creo que esto es correcto. Yo tuve exactamente el mismo problema*. +1 – karim79

Cuestiones relacionadas