Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sick

Poblema no Sistema de busca javascript

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

intendem?

mesmo eu tendo uma estrada so com a palavras chave victor e leo

exemplo:

new entry ("link", "seila1", "6202, sis6202", "DRIVER PARA WIN95/98/me/linux");

new entry ("link/", "seila2", "6202, sis6202", "DRIVER PARA WIN95/98/me/linux");

new entry ("link", "victor e leo", "6202, sis6202", "DRIVER PARA WIN95/98/me/linux");

se eu pesquisar seila1 vai aparecer so o seila1,se eu digitar seila2 vai aparecer so o seila 2,se eu digitar victor e leo vai aparecer o seila1,seila2 e o victor e leo

intenderam?

tem como resolver issu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.