On Sun, 12 Jun 2005 14:44:44 +0200, Bertel Lund Hansen
<nospamfilius@lundhansen.dk> wrote:
>Findes der en måde så indholdet kan huskes til hver gang når der
>igen trykkes "Søg"?
Der findes udvidelser til PHP, der giver mulighed for noget shared
memory management. Det er dog typisk ikke noget, der er installeret på
forhånd, og ligeledes noget, der kan øge kompleksiteten af ens sider.
Kig fx på
http://dk.php.net/shmop , hvis du vil se nogle
PHP-eksempler. Men det er ikke sikkert, det er noget, du kan få lov
til at benytte hos din udbyder.
I praksis ville jeg blot overveje, om der var tale om et egentligt
problem. Handler det om at din side er reelt sløv, eller blot om at du
"bare" vil være hensynsfuld og belaste så lidt som muligt på serveren?
Man kunne forestille sig, at hvis filen i øvrigt tilgås ofte, og ikke
ændres, så vil den i forvejen være cached i filsystemet. Det er så
måske ikke tilfældet hos en udbyder med tusindevis af kunder, men
omvendt set, så er problemet måske heller ikke så stort.
Jeg tror, jeg ville erkende, at sortering af medlemsliste-siden
alligevel ikke er noget, der foretages hele tiden, så det enkelte
fil-opslag er rent marginalt. Generelt er min holdning, at lige præcis
ved søgninger må der godt bruges ressourcer (forudsat at søgningen
ikke opleves som at tage lang tid).
>I behøver ikke råde mig til gå over til en databasebaseret (smukt
>ord) løsning, for jeg er godt klar over at det er der jeg skal
>hen - engang.
Pas på, at du ikke falder i optimering-frem-for-funktionalitet-fælden.
Flere databaser har meget fornuftige indekseringsrutiner, der gør, at
det utroligt hurtigt fx at finde rækker, hvor personens navn starter
med "Bertel" - derimod er det ikke muligt at gøre brug af en
indeksering, hvis man søger på tekststykker inde i en streng, fx
"Lund" (her antaget at et fornavns-felt indeholder "Bertel Lund").
Når datamaterialet ikke er større end et par tusinde rækker, så vil
jeg foretrække, at man ofrer den mulige optimering (at man kun kan
søge på starten af ord, eventuelt hele ord ved en
fuldtekst-indeksering), til fordel for en mere fri søgemulighed. Det
skalerer selvfølgelig ikke i det uendelige, men det er så en
problemstilling, man må se på, når der er tilpas mange rækker.
I et projekt har jeg i øjeblikket ca. 3-4.000 poster, der dækker over
en række personer, bøger og begivenheder. Her har jeg uoptimalt valgt
at trække al data ud og sammenligne navne og titler med søgeordet vha.
similar_text() :
http://php.net/similar-text - på den måde bliver
enkelte stave- og tastefejl også fanget.
Det er helt sikkert en opsætning, hvor belastningen er ligefrem
proportionel med datamængden. Men for det nuværende antal poster, så
virker det som et fint tradeoff. Belastningen er ikke så stor, at den
er mærkbar for brugeren.
--
- Peter Brodersen