alanrg.83 0 Denunciar post Postado Julho 24, 2009 Preciso de ajuda ou orientação de como posso fazer um sistema de busca com relevância de palavras. Tenho em uma tabela do Mysql um campo onde descrevo um produto. Gostaria de que quando um usuário fizesse uma busca, as palavras digitadas fossem comparadas com o campo de descrição e que os registros fossem devolvidos pela ordem de número de palavras contidas no comentário que também estavam na pesquisa do usuário... Deu para entender ou ficou confuso? =/ Ex, se digitei "Monitor Sansung preto" Ele me traz primeiro todos os monitores Sansung pretos, depois os monitores Sansung ou monitores pretos e depois só os monitores ou só os Sansung Existe algo assim por aqui para eu consultar, ou alguem já desenvolvel algo parecido? Achei essa explicação mas está em ASP, precisava de algo que funcione do mesmo jeito mas em php Sistema de Busca com Relevância, em ASP/MySQL Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Julho 24, 2009 Ele me traz primeiro todos os monitores Sansung pretos, depois os monitores Sansung ou monitores pretos e depois só os monitores ou só os Sansung Existe algo assim por aqui para eu consultar, ou alguem já desenvolvel algo parecido? Bom, primeiro você precisa criar um índice FULLTEXT na sua tabela: mysql> create table `teste`( -> `id` mediumint(8) unsigned not null auto_increment, -> `nome` varchar(20) not null, -> `descricao` varchar(100) not null, -> primary key(`id`), -> fulltext (`nome`,`descricao`) -> ) engine=MyISAM; Query OK, 0 rows affected (0.01 sec) Inserindo alguns registros para testar: mysql> insert into `teste`(`nome`,`descricao`) values -> ('Monitor Sansung','Monitor Sansung Preto'), -> ('Monitor Philips','Monitor digital preto'), -> ('Monitor Sansung','Monitor Sansung Prata'); Query OK, 3 rows affected (0.43 sec) Records: 3 Duplicates: 0 Warnings: 0 Testando: mysql> select * from `teste` where match(`nome`,`descricao`) against ('Monitor Sansung Preto' IN BOOLEAN MODE ); +----+-----------------+-----------------------+ | id | nome | descricao | +----+-----------------+-----------------------+ | 1 | Monitor Sansung | Monitor Sansung Preto | | 2 | Monitor Philips | Monitor digital preto | | 3 | Monitor Sansung | Monitor Sansung Prata | +----+-----------------+-----------------------+ 3 rows in set (0.00 sec) E viva o índice FULLTEXT !!! Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Julho 24, 2009 Movido: PHP=>MySQL Compartilhar este post Link para o post Compartilhar em outros sites