Kyrre Baker

Weblog / Fotoblog

Eksperimentell søkefunksjon

Lørdag 21. Juli 2007, kl. 17:34:00

Movable Type har et innebygd søkesystem som fungerer. Dog stopper det der, og mulighetene er få. I tillegg er Movable Type sitt system ufattelig tregt til tider.

Dette har gjort at jeg nå har skrevet en eksperimentell søkefunksjon i PHP og implementert denne i Movable Type. Fordelene er, til tross for at dette fremdeles kun er en betaversjon, følgende.

Dog har tingene også noen små ulemper men jeg regner med å få sortert ut det aller meste i løpet av ikke så alt for lang tid. Jeg regner ikke med at boolske søk trenger forklaring, men som en hovedsak kan jeg nevne at man nå kan søke med *, +, -, osv. osv. Skulle du se noe som ikke fungerer; ikke nøl med å sende meg en mail.

Et par- tre søketips

Ønsker du å søke etter ordet «kira» så gjør du det med teksten kira og får altså listet opp alle sider med dette ordet i seg. Ønsker du derimot å fjerne f.eks. «saybia» fra det samme søket er det kira -saybia som gjelder. Videre kan du også legge til så teksten inneholde begge ordene med f.eks. kira +saybia og ikke inneholde «movable type». Ganske enkelt egentlig.

Endringer i Movable Type sin database

Jeg måtte dog gjøre en endring i Movable Type sin MySQL-database for å få til «fulltext» - søk i MySQL. Dette gjøres enkelt- og greit med følgende kommando.

ALTER TABLE mt_entry ADD FULLTEXT searchindex (
	entry_title,
	entry_basename,
	entry_text,
	entry_text_more,
	entry_excerpt,
	entry_keywords
)

Utover dette er resten ren PHP, og koden for dette kommer om ikke så alt for lenge. Først må jeg bare sørge for at ting fungerer 100%, og luke ut et par feil jeg vet om- og kanskje noen kommende. Og jeg vet. Jeg konverterte til Movable Type for å slippe for mye kodeskriving men det ser ikke ut som om at jeg klarer å vri meg unna likevel.

Stengt for videre diskusjon

Denne artikkelen er nå stengt for videre diskusjon for å hindre spam via kommentarskjemaet eller trackback/ping. Den kan dog bli åpnet igjen ved et senere tidspunkt dersom antallet spamforsøk blir lavere.