Sökning på servern
Ett val per sajt för stora sajter: servern söker i stället för läsarens webbläsare.
Som standard söker läsarens webbläsare. Första gången läsaren öppnar sökrutan hämtas en lista över alla sidor läsaren får se, och sökningen görs i den. I en stor sajt blir listan stor. Då kan sajten låta servern söka i stället.
Vad valet gör
- I webbläsaren (standard): sökrutan hämtar listan en gång per sidvisning och söker i den.
- På servern: servern håller ett sökindex för sajten och uppdaterar det efter varje ändring. Sökrutan skickar varje sökning till servern och får tillbaka de 20 bästa träffarna.
För läsaren ser sökrutan likadan ut: samma genväg, senaste sökningar, taggar och versionsval. Läsaren ser bara sidor den får läsa, precis som förut. Servern prövar varje träff mot läsarens behörighet innan den visas.
Två skillnader i vad som hittas:
- Varje ord ska finnas på sidan, som ett helt ord eller början av ett ord.
konfighittar konfiguration, men inte grundkonfiguration. - Flera ord behöver inte stå i följd.
När det lönar sig
Listan i webbläsaren väger kring 3 kB per sida. Mätt i en provsajt med 2 400 sidor i tre versioner:
| I webbläsaren | På servern | |
|---|---|---|
| Att hämta före första sökningen | 2,3 MB (en version), 6,7 MB (alla) | inget |
| Per sökning | inget (sökningen görs lokalt) | 0,2–7 kB, svar på 0,03–0,07 s |
| Efter en ändring i sajten | nästa hämtning tar 0,1–0,3 s | indexet uppdateras på 0,02 s |
- Under några hundra sidor: behåll standard. Listan är liten, och sökningen känns omedelbar.
- Från ett par tusen sidor, eller när läsarna ofta har långsam uppkoppling: välj servern.
Indexet på servern tar plats på disken: kring 30 MB för 2 400 sidor.
Så slås det på
- Installera Grav-pluginet
tntsearchoch stäng av det:enabled: falseiuser/config/plugins/tntsearch.yaml. Temat använder bara sökbiblioteket som följer med pluginet. Pluginets egen sökning ska aldrig vara på, eftersom den visar sidor som är skyddade. - PHP behöver tillägget
pdo_sqlite, och Gravs cache ska vara på. - Välj i sajtens Admin: Themes → Groovy Docs → Search → Search runs → On the server. Valet gäller en sajt i taget.
- Öppna Hälsokontrollen. Den säger om något saknas och om indexet är fyllt.
Indexet fylls av sig självt, efter nästa ändring eller första sökningen. Fram till dess söker webbläsaren som förut. I en sajt med några tusen sidor tar det ett par sökningar eller ändringar.
Om något saknas
Saknas pluginet, pdo_sqlite eller cachen, söker webbläsaren som med
standardvalet. Inget går sönder, och hälsokontrollen visar en varning.