Dag 29: Gjøre alt søkbart
Alle nettsteder trenger et nettstedsøk. Punktum.
Regler for et godt nettstedsøk:
- Plasser søkeboksen på hver eneste side, helst «ovenfor hovedinnholdet» (synlig uten å måtte skrolle).
- Søker i alt innholdet som standard. Hvis du har et valg for å søke i innlegg, kommentarer, eller begge deler, gjør «begge deler» til standard.
- Ikke fyll opp søkeboksen din med avanserte valg, som boolsk logikk, sensitivitet for store og små bokstaver, eller regulære uttrykk. Velg som standard å etterligne Googles måte å gjøre det på (passe til alle ord, ikke passe til partielle ord, ikke passe til om det er store eller små bokstaver, ikke bruke regulære uttrykk) og gjør så valgene synlige på en egen separat «Avansert søk»-side.
- Gi søkeboksen din en skikkelig «label» og en tastatursnarvei. Jeg anbefaler
accesskey="4". (Merk: På dag 15 ga jeg et eksempel på hvordan man definere tastatursnarveier til et søkeskjema, men jeg fikk gjort det feil. For å oppnå maksimum kompabilitet på tvers av nettlesere, så trenger du å definere tastatursnarveien på<label>, og ikke på<input>. Se eksempelet nedenfor for den korrekte syntaksen.)
Hvem har nytte av det?
Anne, Jørgen, Knut, Lillian, Marius, og stort sett alle andre i verden har nytte av et godt implementert nettstedsøk. Spesielt i en weblogg eller et nyhetsorientert nettsted hvor innholdet primært er organisert kronologisk, det er veldig frustrerende å prøve å finne et bestemt innlegg som ikke lenger ligger på forsiden. Det er ikke mange som vet om «site:domainname.com»-syntaksen til Google (for å begrense søkeresultatene til et bestemt domene), men Google reindekserer uansett bare én gang i måneden. Tilby ditt eget nettstedsøk.
Hvordan gjøre det
Greymatter har innebygd søkefunksjonalitet, men du kommer til å måtte tilpasse malen en smule for å tilby en tastatursnarvei til søkeboksen. Gå til «Edit Templates», «Miscellaneous Templates», «Search Form Template», og finn et skjema som dette:
<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<INPUT TYPE=TEXT NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>
Og endre det til dette:
<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>
Movable Type-brukere kan prøve ut MT-Search tillegget. Jeg bruker dette på et kommende MT-drevet nettsted. Jeg prøvde det på min hoved-weblogg (900+ innlegg) og den var forholdsvis langsom, men den ser ut til å fungere greit på mindre nettsteder. Den blir ikke lenger aktivt utviklet, men den virker greit, til og med i den siste versjonen av Movable Type. (Merk: Hvis du bruker MySQL-versjonen av Movable Type 2.2 så trenger du å modifisere mt-search.cgi en smule.)
Hvis du har webloggen din på ditt eget domenenavn kan du bruke en tredjeparts søketjeneste som indekserer
innholdet ditt og tilbyr søkeresultater etter etterspørsel. Populære alternativer på denne fronten inkluderer
Atomz Express Search som Blogger.com anbefaler, og
Google Free Web Search som jeg bruker på min egen weblogg.
Begge kan tilpasses til en viss grad, og ganske fort også, selv om deres indeksering av innholdet ditt ikke er
oppdatert umiddelbart. Begge tillater deg å modifisere utseende på søkeboksen din; mitt Google-drevne søkeskjema
ser ut som dette (legg merke til bruken av <label> og 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:https://en.wikipedia.org/wiki/Mark_Pilgrimimages/eyes.jpg;LH:68;AH:left;GL:0;S:https://en.wikipedia.org/wiki/Mark_Pilgrim;AWFID:0d8ffcebe359c844;" />
<input type="hidden" name="domains" value="diveintomark.org" />
<input type="hidden" name="sitesearch" value="diveintomark.org" />
</p>
</form>
Merk: Du kan ikke klippe og lime dette inn i din egen weblogg. Hvis du ønsker å bruke Google Free Web Search
så må du registrere deg og få din egen kode til det skjulte cof-feltet.
Les mer
- Jay Allen: MT-Search, et søketillegg til Movable Type.
- Phil Ringnalda: mt-search.cgi and MySQL. Viktig informasjon om å få MT-Search til å fungere med Movable Type 2.2 og MySQL.
- Atomz Express Search.
- Google Free Web Search.
- Blogger.com: How do I add a search engine to my blog? Anbefaler Atomz, men lenker til andre som ikke er listet her.
-
Jukka Korpela: Improving
accessibility with
accesskeyin HTML forms and links. Detaljert forklaring på hvorfor man burde bruke «4» som tastatursnarvei til ens nettstedsøk. -
Jakob Nielsen: Is Navigation Useful?
Users often rely on search as their main hunting strategy.
- Jakob Nielsen: Search Usability. Fem år gammel og fortsatt veldig relevant.
- PHP.net: URL HOWTO. PHP.net har det mest forbløffende nettstedsøket jeg noensinne har sett. Hinsides en standard søkeboks bruker de et egendefinert 404 feilmeldingsdokument (som vanligvis bare ville vise en «Siden ikke funnet»-feilmelding) for å intelligent søke i nettstedet basert på URL-er. Så du kan skrive en adresse som php.net/phpinfo inn i din nettlesers adressefelt, og php.net vil så videresende deg til the reference page on the phpinfo function.