/ / Pesquisa de texto completo do MySQL não funciona para algumas palavras como 'house' - mysql, full-text-search

Pesquisa de texto completo do MySQL não funciona para algumas palavras como 'house' - mysql, full-text-search

Eu configurei um índice de texto completo em uma pequena seleçãode registros através de 3 campos (tentou uma combinação dos 3 também e teve o mesmo resultado), e algumas palavras retornam resultados bem, mas certos como "house" e "australia" don t (curiosamente, "australian" e "casa" faz).

Parece um comportamento estranho. Se eu adicionar "WITH QUERY EXPANSION", obtenho resultados, mas eles não são os mais relevantes agora.

Alguém tem alguma ideia do porquê disso? Caso contrário, terei que recorrer ao uso de pesquisas LIKE e prefiro ter relevância incluída.

Respostas:

10 para resposta № 1

Pode ser um par de coisas:

  • O MySQL tem uma lista padrão de "stop words" que não estão incluídos em uma pesquisa de texto completo - http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html . "house" e "australia" não parecem estar nessa lista, mas outras palavras que você pesquisar podem ser afetadas por ela.
  • Qualquer palavra que aparece em mais de 50% das linhas oué de 3 letras ou em menor comprimento no banco de dados também é considerado uma palavra de parada. A coisa de 50% é particularmente fácil de ser pego se você está apenas testando a pesquisa de texto completo em uma tabela com apenas algumas linhas.

Se você procurar no Google por "palavras-chave do mysql", você encontrará muito mais sobre isso, já que é uma daquelas coisas que atraem muitas pessoas.