Fazer busca usando MATCH AGAINST
Ola Amigos,
Tenho um site de pesquisa e busca por serviços e produtos diversos.
Meu MySQL não oferece suporte FULLTEXT.
Então estou contando com a ajuda de vocês para solucionar meu problema, pois o que eu queria era pesquisar e retornar resultados de duas colunas.
Exemplo: Quando procuro por algo do tipo: "roupa infantil" ele não exibe nada por que "roupa" esta na coluna 1 e "infantil" na coluna 2, ou até mesmo “roupa” vir com uma palavra no meio antes do "infantil", não retorna nada.
Mas digitando apenas uma palavra a busca é precisa, e até duas, mas tem que estar em ordem na mesma linha e campo no BD.
Uso um arquivo PHP que tem este código atualmente:
if ($trecho != ""){
$sql = "select * from assinante_comercial WHERE ((nm_fantasia_empresa LIKE '%$trecho%') or"
." (ds_ramo_atividade_empresa LIKE '%$trecho%') or (ds_endereco_empresa LIKE '%$trecho%') or"
." (nm_bairro_empresa LIKE '%$trecho%') or (nm_responsavel_empresa LIKE '%$trecho%')) order by nm_fantasia_empresa";
Tentei usar este:
if ($trecho != ""){
$sql = "select * from assinante_comercial WHERE MATCH (nm_fantasia_empresa , ds_ramo_atividade_empresa , ds_endereco_empresa , nm_bairro_empresa , nm_responsavel_empresa) AGAINST ('$trecho') order by nm_fantasia_empresa";
Não deu certo, mas não sei se foi pela falta de suporte, pois inclui todos os campos no Índice do MySQL como INDEX (tipo), já que não deixa selecionar FULLTEXT.
Tem alguma coisa que eu possa fazer neste código MATCH AGAINST que dê pra usar mesmo sem suporte fulltext? Ou mesmo no meu código atual para otimizar a pesquisa.
Tem algo errado nas sintaxes, funções, etc?
Outras informações: Meu Mysql é InnoDB, Query, etc.
(Eu sei, é tudo meio antigo, foi criado há 9 anos, mas estou tentando atualizar agora)
Agradeceria muito pela ajuda.
Abraços
Discussão (2)
Carregando comentários...