Foi então que encontrei um trabalho nesse link...
Nele é proposto um algoritmo para pesquisa fonética em português, acho que o nome é BUSCABR...
Para utilizar esta função criei a seguinte classe no PHP que pode ser vista aqui..
Exemplo e Explicação:
echo BuscaBR::Fonetica("José da Silva"); // Retorna: / js d slv /O segundo argumento "1", serve para fazer com que o retorno venha delimitado por //, tive de fazer isso pois minha outra classe usava trim, e removia os espaços antes de depois...
echo BuscaBR::Fonetica("José da Silva",1);; // Retorna: js d slv
Mas porque espaços antes e depois da string?
Porque ao pesquisar, %js%, sem espaços, ele vai match jsm (Josiane)...
Agora pesquisando por % js %, com espaços, ele vai match apenas José ou Jozé ou Josi, Giosé...
E se no MySQL estiver armazenado sem espaços, ele sempre vai ignorar a primeira e a última palavra, que apesar de terem as letras certas, faltam um espaço...
Espero de façam bom uso dela...
Link da Função: http://pastebin.com/f1819c394
PS: Percebi que a minha função que foi feita com base no guia do texto está errada, pois na tabela do texto ele inclui diversas letras que não estavam no guia, logo segue a nova versão do código aqui... Já alterei nos links acima...
Nenhum comentário:
Postar um comentário