Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criei um sistema de busca e resultado simples.
No campo form nomeei o text field como "busca" e na página resultado criei um filtro simples:
SELECT *
FROM servicos_cadastro
WHERE cad_buscador LIKE %colname%
onde o colname é text e $_GET['busca']
Nos resultados estou conseguindo apenas quando digita-se uma palavra exemplo: Farmácia
Mas preciso que o resultado seja como no Google onde fazemos uma busca por Farmácia em Vila Joaniza e o resultado retorna composto.
Ou seja, o Google separa as consultas: 'Farmácia' e 'Vila Joaniza' mesmo estando digitadas no mesmo campo text field 'busca' ?O mais recomendável, no seu caso, seria partir para FULL TEXT SEARCH (FTS).
Eu implementei FTS no meu TCC de pós-graduação (utilizando PostgreSQL). Na época, o MySQL não era muito bom com isso, hoje em dia parece estar diferente.
O seguinte artigo foi essencial para a minha implementação: http://rachbelaid.com/postgres-full-text-search-is-good-enough/
A não ser que tenha predefinições em palavras chave, você vai precisar de inteligência artificial para "compreender" o que os usuários digitam, para resolver a curto prazo, faça um "explode"(divida a string) na busca, e pesquise nas colunas desejadas.
//Manuais:
//http://php.net/manual/pt_BR/function.explode.php
//http://php.net/manual/pt_BR/function.implode.php