View Comments



Implementação do Search
Tue Jun 27 19:51 2006



Como havia referido á uns meses, não me sentia satisfeito com o "Search" do My Little Place.
O serviço do Google para o efeito peca no facto de não pesquisar threads mais antigos e porque apresenta resultados incoerentes e repetidos.
Decidi então pegar no AGAINST do MySQL e implementar desde a raiz a pesquisa do site. Estou bastante impressionado a relevância dos resultados apresentados e apenas bastou este código:

$string= $_GET['str'];
$string= mysql_escape_string($string);
$string = explode(" ", $string);
$i=0;
while ($string[$i]!=null){
if (strlen($string[$i])<=2)
$string[$i]=null;
else
$string[$i]=$string[$i]."*";
$i++;
}
$string = implode(" ",$string);
$query= "select id, pid, date, title, message, MATCH
(title,message,contact)AGAINST ('$string') as score from comments
where MATCH(title,message,contact)AGAINST ('$string' IN
BOOLEAN MODE) order by score DESC limit 10;";
if(($result = mysql_query($query)) === FALSE)
die($this->err("search"));


Decidi limitar a dez resultados porque nos testes que fiz encontrei sempre o que pretendia neste intervalo.
Começo a desconfiar que existe aqui inteligência articifial. Por exemplo se eu fizer uma pesquisa por Soulfly, é-nos apresentado em Quarto lugar "I will Refuse" que é realmente uma letra de Soulfly, mas o post em si nada refere em relação a esse facto, será o MySQL conhece a letra? :)












Tue Jun 27 20:38 2006



No código da imagem está o segredo.. se bem que era mais fixe se realmente fosse algo spooky. soulfly.jpg ;)


Wed Jun 28 9:59 2006



Boa observadora!

Estava a ver se convencia alguém que o MySQL algures no seu intrínseco possuía o conhecimento das letras da banda, estou a ver que não vai dar ;)