Quando il nostro sito web diventa sempre più ricco di informazioni e pagine HTML, può diventare utile indicizzare via database le notizie e i contenuti del sito. Questo espediente semplifica notevolmente le ricerca delle informazioni da parte dell'utente, il quale attraverso un semplice form di ricerca potrà accedere rapidamente alle pagine HTML desiderate.
Certo, è possibile usare lo stesso Index Server per fare questo lavoro, ma in molti casi (sopratutto in caso di sistemi piccoli gestiti in proprio) ed in particolar modo con siti non molto grandi, può essere utile non usare Index Server per risparmiare preziose riserve sul server e metterle a disposizione delle nostre applicazioni ASP.
Per indicizzare il sito serve costruire una tabella sul nostro database, Access per esempio, son una struttura simile:
Struttura Tabella Documenti di Access | |
Doc_ID | Campo numerico valore intero, chiave primaria della tabella rappresenta l'ID del documento da cercare utile per l'impaginazione e la navigazione tra i risultati. |
Doc_URL | Campo testo del valore di 50 caratteri, indica il percorso del file HTML da cercare, /web/miapagina.html |
Titolo | Campo testo, del valore di 200 caratteri, contiene il titolo della pagina HTML. |
Descrizione | Campo testo o memo, è una breve descrizone della pagina HTML e delle informazioni che contiene, rappresenta il campo in cui verrà effettuata la ricerca della parola inserita dall'utente. |
Quando inseriamo una nuova pagina web nel nostro sito dobbiamo indicizzarla. Per fare questo sarà necessario inserire il suo titolo, il percorso e una breve descrizione dei contenuti all'interno della tabella Documenti, per il momento a mano, ed il gioco è fatto.
Per fare un buon lavoro nella descrizione dovete tentare di inserire il maggior numero di parole chiave, per rendere la ricerca più precisa e vasta.
Con la seconda parte verrà spiegato come avvantaggiarsi dell'uso dei META TAGS per automatizzare il tutto.
Abbiamo essenzialmete due files, uno contenente il form per la ricerca ricerca.html e uno contenente lo scripts asp per l'interrogazione del database, risultati.asp .
Ecco il codice di ricerca.html:
<form action="risultati.asp" method="post"> <input type="Text" name="StringaDaCercare" size="8" maxlength="20"> <input type="Submit" value="Go"> <input type="Hidden" name="ID" value="0"> <input type="Hidden" name="operatore" value="AND"> </form>
Ecco il codice di risultati.asp:
<!--#include virtual="/scripts/adovbs.inc"--> <% 'Connessione al database Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DNS_DATABASE;" 'Setta le preferenze OperatoreBooleano = Request.form("operatore") RecordsPerPagina = 5 'Recupera la stringa da ricercare Dim strRicerca strRicerca = Request.form("StringaDaCercare") 'Recupera ID del documento da ricercare ID = Request.Form("ID") 'Definisci l'istruzione SQL Dim stmSQL, tmpSQL stmSQL = "SELECT * FROM Documenti WHERE " tmpSQL = "(Descrizione LIKE " 'Suddividi la stringa da cercare Dim Pos Pos = 1 While Pos > 0 Pos = InStr(1, strRicerca," ") If Pos = 0 Then 'Ho trovato una sola parola nella stringa da ricercare tmpSQL = tmpSQL & "'%" & strRicerca & "%')" Else 'Ci sono più parole, quindi concateno le istruzioni LIKE SQL tmpSQL = tmpSQL & "'%" & Mid(strRicerca,1,Pos) & "%' " & OperatoreBooleano & " Descrizione LIKE " strRicerca = Mid(strRicerca,Pos+1,len(strRicerca)) End If Wend
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.