Giorno 29: Rendete tutto ricercabile

Ogni sito web ha bisogno di una funzione di ricerca al suo interno. Punto.

Queste le regole per un buon motore di ricerca interno:

  1. Inserite il riquadro della ricerca in ogni pagina, preferibilmente "prima della piega" (visibile senza scendere con le barre di scorrimento) [NdT il termine deriva dal giornalismo, ad indicare la parte del giornale più letta, quella prima della piega, appunto].
  2. Per difetto cercate su tutto il sito. Se avete un'opzione per limitare la ricerca, ad esempio, ai solo articoli o ai commenti, o ad entrambi, fate in modo che per difetto la ricerca sia per "entrambi".
  3. Non complicate il riquadro di ricerca con opzioni avanzate, come la logica booleana, sensibilità al maiuscolo/minuscolo, ovvero l'uso di espressioni. Prendete a riferimento il comportamento di Google (ricerca su tutte le parole, intere e non parziali, senza differenza tra maiuscolo e minuscolo, senza uso di espressioni ) e rendete tutte le opzioni visibili su una pagina separata di "ricerca avanzata".
  4. Date al riquadro di ricerca un'etichetta appropriata e definite una scorciatoia di tastiera. Io consiglio accesskey="4". (Nota: Nel Giorno 15, ho dato un'esempio di come assegnare un accesskey al vostro modulo di ricerca, e mi sono sbagliato. Per garantire la massima compatibilità tra i browser, dovreste definire accesskey su <label>, e non su <input>. Fate riferimento agli esempi qui sotto per la corretta sintassi da usare).

A chi serve?

A Jackie, Michael, Bill, Lillian, Marcus, e quasi tutti gli altri al mondo beneficeranno di un corretto inserimento della funzione di ricerca nel sito. Soprattutto in un weblog o in un sito di notizie, dove il contenuto è principalmente organizzato cronologicamente, è frustrante cercare di trovare un particolare messaggio che è già uscito dalla pagina principale e si trova da qualche parte nel sito. Pochi conoscono la sintassi di Google per la ricerca limitata ad un determinato sito "site:domainname.com", senza dimenticare che Google indicizza i siti una volta al mese. Meglio fornire un proprio sistema di ricerca.

Come fare

Greymatter già dispone di una funzione interna di ricerca, ma dovrete personalizzare il modello per consentire l'uso del tasto di accesso veloce al riquadro di  ricerca (attributo  accesskey). Andate su "Edit Templates", "Miscellaneous Templates", "Search Form Template", e cercate questo modulo (form):

<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<INPUT TYPE=TEXT NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>

Cambiatelo così::

<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<label for="gmsearch" accesskey="4">Search for:</label>
<INPUT TYPE=TEXT id="gmsearch" NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>

Per Movable Type si può utilizzare il modulo aggiuntivo  MT-Search . Lo sto usando su un sito MT. L'ho provato sul mio weblog (che ha oltre 900 voci) ed era abbastanza lento, ma sembra andare meglio su siti più piccoli. Non è più sviluppato, ma funziona bene anche con l'ultima versione [NdT riferita  al 2002] di Movable Type. (Nota: se usate la versione MySQL di Movable Type 2.2, dovrete apportare qualche leggera modifica a mt-search.)

Se avete un weblog con un proprio nome di dominio, potete utilizzare un servizio di ricerca esterno che indicizzi il vostro contenuto e fornisca risultati di ricerca a richiesta.  Alternative popolari su questo fronte includono  Atomz Express Search, [NdT utilizzato per questa edizione italiana] raccomandato da Blogger.com, e Google Free Web Search, che uso sul mio weblog. Entrambi possono essere, in qualche grado,  personalizzati, e sono abbastanza veloci, anche se i loro indici non sono aggiornati 'all'ultimo minuto'. Entrambi consentono di personalizzare l'aspetto del riquadro di ricerca; il mio modulo di ricerca con Google si presenta così  (notate  l'uso di <label> e accesskey):

<form id="searchform" method="get" action="http://www.google.com/custom">
<p id="searchlabel"><label for="q" accesskey="4">Search this site:</label></p>
<p id="searchinput"><input type="text" id="q" name="q" size="18" maxlength="255" value=" " /></p>
<p id="searchsubmit"><input type="submit" value="Search" />
<input type="hidden" name="cof" value="LW:116;L:http://diveintomark.org/images/eyes.jpg;LH:68;AH:left;GL:0;S:http://diveintomark.org/;AWFID:0d8ffcebe359c844;" />
<input type="hidden" name="domains" value="diveintomark.org" />
<input type="hidden" name="sitesearch" value="diveintomark.org" />
</p>
</form>

Nota: potete copiare ed incollare questo codice per il vostro weblog. Se volete usare il servizio Google Free Web Search, dovrete registrarvi e inserire il vostro codice personale nel campo cof (nella voce 'value').

Approfondimenti