Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Sugerir outras consultas para ortografias arcaicas (por exemplo, Did You Mean do Google)


O "você quis dizer" do Google é bem interessante:Como o Google "Você quis dizer?" O algoritmo funciona?

No passado, consegui implementar algo semelhante com SOUNDEX que pode aproximar essa funcionalidade.

Martin, Martyn e Martine produzem a mesma saída de SOUNDEX .

Você pode incluir todos os resultados do SOUNDEX corresponder ou selecione os resultados solicitados e, em seguida, select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var) como suas 'sugestões'.

Como otimização, você pode pré-calcular SOUNDEX em campos de pesquisa e mantê-lo como uma coluna indexada para evitar varreduras de tabela.

Não é tão sofisticado quanto o Did You Mean do Google, mas você pode chegar razoavelmente perto muito rapidamente.