Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Buscar por nomes similares ou com erro de digitação Boa noite! Sei que o fórum é destinado para questões relacionadas ao Adianti, porém estou utilizando o framework em um projeto e estou com problema referente ao MySql. Utilizo a consulta abaixo para buscar informações de um tabela: SELECT * FROM tabela WHERE MATCH (campo) AGAINST ('Picant*Defumad*' IN BOOLEAN MODE); Resultado: 50881 LOMBO DEFUMADO PICANTE 50882 CAF...
HL
Buscar por nomes similares ou com erro de digitação  
Boa noite!

Sei que o fórum é destinado para questões relacionadas ao Adianti, porém estou utilizando o framework em um projeto e estou com problema referente ao MySql.

Utilizo a consulta abaixo para buscar informações de um tabela:

SELECT * FROM tabela WHERE MATCH (campo) AGAINST ('Picant*Defumad*' IN BOOLEAN MODE); Resultado: 50881 LOMBO DEFUMADO PICANTE 50882 CAFÉ PICANTE 53030 SNACK CURCUMA E PAPPRICA DEFUMADA



Porém preciso que se o nome picante for escrito de forma errada, ainda consiga retorna as informações, como no caso "PICATE", já tentei utilizar outros MODE de busca como IN NATURAL LANGUAGE MODE entre outros, também já pesquisei e não achei nada para solucionar essa questão.

Desde já, obrigado.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


JC

Saudações Helton,

Em uma pesquisa rápida achei artigo para o banco postgresql
https://www.freecodecamp.org/news/fuzzy-string-matching-with-postgresql/
HL

Obrigado Jorge, porém o post se refere ao postgresql e estou utilizando MySql, onde não tenho a função SIMILARITY disponível.

Preciso dessa consulta seja realizada via BD, pois não posso utilizar o PHP para realizar os filtro. É uma consulta que será utilizada constantemente e que na tabela pode conter mais de 1 milhão de registro.

Dessa forma ira ter um consumo topado de memória para alocar tudo na memória e tratar.