Poblema no Sistema de busca javascript
Olá galera estou com 1 problema no sistema de busca em javascript
este codigo
<script>
function kw_list ()
{
this.keywords = new Array ();
this.num_words = 0;
this.query = "";
this.original_query = "";
this.query_length = 0;
this.possible_points = 0;
this.multiple = points_title + points_keywords + points_description;
this.get_words = get_query;
this.no_query = no_query_found;
}
function get_query ()
{
this.query = top.location.search.substring (top.location.search.indexOf ('=') + 1);
while ((the_plus = (this.query.indexOf ("+", 0))) != -1)
{
this.query_length = this.query.length;
this.query = this.query.substring (0, the_plus) + " " + this.query.substring (the_plus + 1);
}
this.original_query = unescape (this.query);
this.query = this.original_query.toLowerCase ();
this.query_length = this.query.length;
if (this.query != "")
{
var query_pointer = 0;
var end_word = 0;
var at_end = 0;
while ((this.num_words <= (max_keywords - 1)) && (! at_end))
{
end_word = this.query.indexOf (" ", query_pointer);
if (end_word == query_pointer)
query_pointer++;
else
{
if (end_word >= (this.query_length - 1))
at_end = 1;
if (end_word != -1)
this.keywords[this.num_words] = (this.query.substring (query_pointer, end_word)).toLowerCase ();
else
{
this.keywords[this.num_words] = this.query.substring (query_pointer, this.query_length);
at_end = 1;
}
this.num_words++;
if (query_pointer != -1)
query_pointer = end_word + 1;
if (query_pointer > (this.query_length - 1))
at_end = 1;
}
}
if (this.num_words == 0)
return (0);
else
{
this.possible_points = this.multiple * this.num_words;
return (1);
}
}
else
return (0);
}
function no_query_found ()
{
document.writeln ('<link rel="stylesheet" href="thf.css">');
document.writeln ('<CENTER><P><font size="3" face="Arial">Pesquisa em branco.</P></CENTER>');
}
function entry (url, title, keywords, description)
{
this.url = url;
this.title = title;
this.keywords = keywords;
this.description = description;
this.points = 0;
this.search_entry = find_keyword;
this.print_entry = print_result;
}
function find_keyword (the_word)
{
var the_title = this.title.toLowerCase ();
var the_keywords = this.keywords.toLowerCase ();
var the_description = this.description.toLowerCase ();
if ((the_title.indexOf (the_word)) != -1)
this.points += points_title;
if ((the_keywords.indexOf (the_word)) != -1)
this.points += points_keywords;
if ((the_description.indexOf (the_word)) != -1)
this.points += points_description;
}
function print_result (possible_points)
{
document.writeln ('<A HREF="' + this.url + '">' + this.title + '</A> - ' + this.description + '<br>');
}
function no_entry_printed (the_query)
{
document.writeln ('<link rel="stylesheet" href="thf.css">');
document.writeln ("<CENTER><P><class=tg>Verifique Ortografia,Pois Não há ocorrencia da palavra <U><B>" + the_query + "</B></U>.</class=tg></P></CENTER>");
}
function print_intro (the_query)
{
document.writeln ('<link rel="stylesheet" href="thf.css">');
document.writeln ("<CENTER><P><class=tg>Os resultados da pesquisa por <U><B>" + the_query + "</B></U> são:</P></CENTER>");
}
function begin_search ()
{
var key_list = new kw_list;
var entry_printed = 0;
if (! key_list.get_words ())
key_list.no_query ();
else
{
var counter = 0;
var counter2 = 0;
for (counter = 0; counter < entry_num; counter++)
for (counter2 = 0; counter2 <= (key_list.num_words - 1); counter2++)
the_entries[counter].search_entry (key_list.keywords[counter2]);
for (counter = key_list.possible_points; counter > 0; counter--)
{
for (counter2 = 0; counter2 < entry_num; counter2++)
{
if (counter == the_entries[counter2].points)
{
if (entry_printed != 1)
{
entry_printed = 1;
print_intro (key_list.original_query);
}
the_entries[counter2].print_entry (key_list.possible_points);
}
}
}
if (! entry_printed)
no_entry_printed (key_list.original_query);
}
}
the_entries = new Array ();
//DIGITE AQUI AS PALAVRAS CHAVES E O ENDEREÇO DA RESPOSTA URL
the_entries[0] = new entry ("http://www.thfantini.hpg.com.br/", "Driver Trident 9680", "9680, trident9680", "Win95/98/me/linux");
the_entries[1] = new entry ("http://www.thfantini.hpg.com.br/", "Driver Trident 9440", "Trident9440, 9440", "DRIVER PARA WIN95");
the_entries[2] = new entry ("http://www.thfantini.hpg.com.br/", "Driver ATI RAGEIII", "ATI RAGEIII", "DRIVER PARA WIN95/98");
the_entries[3] = new entry ("http://www.thfantini.hpg.com.br/", "Driver SIS 530", "Sis 530, sis530", "DRIVER PARA WIN95/98/me/linux");
the_entries[4] = new entry ("http://www.thfantini.hpg.com.br/", "Driver SIS 6202", "6202, sis6202", "DRIVER PARA WIN95/98/me/linux");
the_entries[5] = new entry ("http://www.thfantini.hpg.com.br/", "Driver Usrobotics56k", "Usrobotics, 56k", "DRIVER PARA WIN95/98");
the_entries[6] = new entry ("http://www.thfantini.hpg.com.br/", "Driver Cirus logicus 36600", "36600,cirus,logicus,modem 36600", "DRIVER PARA WIN95/98/me/linux");
the_entries[7] = new entry ("http://www.thfantini.hpg.com.br/", "Driver HP692", "hp692, hp", "DRIVER PARA WIN95/98/me");
the_entries[8] = new entry ("http://www.thfantini.hpg.com.br/", "Driver Epson", "Stylus,color,600,styluscolor,stylus600", "DRIVER PARA WIN95");
the_entries[9] = new entry ("http://www.thfantini.hpg.com.br/", "Driver xerox", "xerox", "DRIVER PARA WIN95/98/me/linux");
the_entries[10] = new entry ("http://www.thfantini.hpg.com.br/", "Driver SondBlaster16", "blaster,Blaster,16,sondpro", "DRIVER PARA WIN95/98");
//abaixo vai o número de entradas existentes
var entry_num = 11;
var max_keywords = 20;
var points_title = 3;
var points_keywords = 2;
var points_description = 1;
begin_search ();
</script>
Ele pesquisa de boa,mais o poblema e que quando pesquiso palavras separadas ele mostra todos os resultados em vez de 1 só
exmplo= victor e leo se eu pesquisar victor e leo ele mostrara todas as entradas que nao tem nada a ver com victor e leo,
intendem?
mesmo eu tendo uma estrada so com a palavras chave victor e leo
tem como resolver issu?
Discussão (1)
Carregando comentários...