Ao criar um site uma das funções que é muito importante e ter um campo de pesquisa, para que o usuário possa encontra o que procura no seu site mais rápido. Muitos sites utilizam banco de dados para o campo de pesquisa, pois sites que tem muito conteúdo geralmente utiliza banco de dados. Se o seu site utilizar um gerenciador de CMS, você não precisa criar um campo de pesquisa, pois maioria já tem, basta que o usuário adicione a função no site. Esse código que utilizei para criar o campo de pesquisa foi feito em java, não precisa saber java para utiliza-lo, basta fazer pequenas alterações para o código funcionar. O primeiro passo e escrever o código de busca onde o usuário irá digitar o que procura.
<form method="GET" action="resultado.html"> <input type="text" name="query" placeholder="Pesquisar no site" required=""/> <input type="submit" value="Buscar"/></form></div>
Esse código acima está com a função de mostrar o resultado em outra pagina do site, quando o usuário digitar algo que procura ele será redirecionado para outra pagina que mostrará o resultado da pesquisa. Abaixo o código que ira realizar as buscas:
<script language=""> 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="gp.css">'); document.writeln ('<CENTER><P>.</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 + '" ="meio">' + this.title + '</A> - ' + this.description + '<br>'); } function no_entry_printed (the_query) { document.writeln ('<link rel="stylesheet" href="gp.css">'); document.writeln ("<CENTER><P> Não há ocorrencia da palavra <U><B>" + the_query + "</B></U>.</P></CENTER>"); } function print_intro (the_query) { document.writeln ("<left><br><p>Os resultados da pesquisa por <U><B>" + the_query + "</B></U> são:</p><br></left>"); } 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 (); //aqui vai as entradas para a pesquisa the_entries[0] = new entry ("confraternizacao.html", "Confraternizacao", "bola", "Do final do Ano de 2013", "<br>"); the_entries[1] = new entry ("comochegar.html", "Como chegar", "Asdefa", "Na associação dos servidores da delegacia federal de agricultura no Pará",".<br>"); the_entries[2] = new entry ("videos.html", "Videos", "futebol", "Na Asdefa", ".<br>"); the_entries[3] = new entry ("eventos.html", "Eventos", "Fim de ano", "Fotos do evento", "na Asdefa", ".<br>"); the_entries[4] = new entry ("divulga.html", "Divulgue", "Eventos", "Eventos na Asdefa ", "Asdefa", ".<br>"); the_entries[5] = new entry ("missa.html", "Missa de 30° dia de falecimento do Dr. Elwal Falcão Valente", "Elwal Falcão Valente", "Missa ", "Missa", ".<br>"); //abaixo vai o número de entradas existentes var entry_num = 6; //aumenta de acordo com as obcoes de busca no caso 2 ate agora var max_keywords = 20; //aumenta de acordo com as obcoes de busca no caso 2 ate agora var points_title = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora var points_keywords = 2; //aumenta de acordo com as obcoes de busca no caso 2 ate agora var points_description = 1; begin_search (); </script>
Caso necessite adicionar mais busca no código basta aumentar o numero na linha var entry_num = 4, lembrando que o 0 já conta, ou seja se você for adicionar mais um campo Ex: 5 a próxima the_entries[4] terá que ser 4 pois o zero e a primeira [1]. Veja como fica o codigo em funcionamento no site em que utiliza o mesmo Asdefa