Fui encarregado de identificar uma solução para ajudar a identificar possíveis duplicatas ao inserir novos registros de usuário em um banco de dados MySQL. Alguém conhece alguma solução barata, de preferência gratuita?
O tipo de duplicatas que preciso detectar são formas comuns de nomes ingleses abreviados - como Bill para William, Bob para Robert etc - junto com erros ortográficos e duplicatas simples. Eu li um pouco sobre o uso do Lucene, mas parece ser mais para pesquisa de texto completo e não tenho certeza se ele suporta a correspondência de nomes duplicados que estou procurando.
Isso pode ser melhor colocado no estouro de pilha. Isso não é algo que você conseguirá com o MySQL. O que você está falando é chamado de 'derivação' na pesquisa. Semelhante a combinar diferentes conjugações de uma palavra regular, por exemplo, run => runs ,ran.
Não conheço nenhum desses aplicativos para nomes próprios de imediato, mas quando você encontra um que fica ao lado de seu aplicativo principal para "normalizar" o nome antes de inserir o registro em seu banco de dados. Mysql, sqlserver, mongo, qualquer coisa. A tecnologia de banco de dados é irrelevante, pois sua tarefa está fora do escopo de armazenamento de dados/documentos.
Lucene seria uma ferramenta melhor para sua tarefa. Mas eu não poderia falar sobre sua capacidade pré-embalada de conter nomes como você deseja.
Editar
Depois de pensar sobre isso, acho que falei mal quando disse que o Lucene seria uma abordagem "melhor" por si só para o que você deseja. Meu entendimento é que os lematizadores existem fora do lucene principal e, em seguida, fazem uma busca por "bob" em ("bob" ou "robert") para alimentar o mecanismo lucene.