Lokaltog Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 I databasen min har jeg en tabell med sider, som har følgende struktur: CREATE TABLE `pages` ( `id` int(4) NOT NULL auto_increment, `date` date NOT NULL default '0000-00-00', `path` varchar(60) NOT NULL default '', `title` varchar(120) NOT NULL default '', `author` varchar(30) NOT NULL default '', `ingress` text NOT NULL, `subcat` enum('php','mysql','apache','html','css','generelt') NOT NULL default 'php', `cat` enum('guide','kodegalleri','artikkel') NOT NULL default 'guide', `orig_art` varchar(80) NOT NULL default '', `url_title` varchar(30) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=20 ; Jeg har lyst til å legge til mulighet for fulltext-søk i denne tabellen, i kolonnene 'ingress' og 'title' (mest fordi jeg er nysgjerrig på hvordan dette funker). Er det noen der ute som kan gi meg en enkel introduksjon i hvordan man utfører dette? På forhånd takk! Lenke til kommentar
Torbjørn Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 manualen har forklaring og eksempler Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 Jeg så dette jeg også, nesten rett etter at jeg hadde startet tråden. Beklager bryderiet! Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 Ok, støtte nettopp på et merkelig problem som jeg ikke finner løsningen på: Jeg har en fulltext-index for kolonnene title og ingress. Jeg har flere rader der ordet "CSS" er representert i både tittelen og ingressen. Kan noen forklare meg hvorfor jeg ikke får returnert noen rader når jeg kjører denne spørringen: SELECT *, MATCH(title, ingress) AGAINST('css') AS `score` FROM `pages` WHERE MATCH(title, ingress) AGAINST('css') ORDER BY `score` DESC LIMIT 15 Hadde vært herlig om noen kunne fortelle meg hva jeg har gjort feil! Lenke til kommentar
Torbjørn Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 husk at du allerede har resultatet av "MATCH(title, ingress) AGAINST('css')" i score, så ... WHERE score ORDER BY ... er bedre (unngår å gjøre matchen to ganger. prøv å ta bort WHERE score og se hva du får. score har vel gjerne en verdi (av eksemplene på den foreslåtte siden vil du se at det er et tall med mange desimaler) får du null i dine score's? Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 Jeg har prøvd alle mulige varianter og eksempler og står virkelig fast her. Jeg har prøvd en helt enkel spørring uten begrensninger med WHERE, og resultatet da er at kolonnen score har bare 0-verdier. Lenke til kommentar
Torbjørn Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 prøv litt lengre søkeord det er en mysql server konfigurasjonsdirektiv som setter nedre grense på hvor lange søkeord man kan ha i fulltextsearch Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 (endret) Usj, det var kjedelig. Fant en midlertidig løsning der jeg kjører OR LIKE '%$søkeord%' for både ingress og tittel. Det funker egentlig helt ok, i og med at den fortsatt utfører fulltekstsøk og returnerer relevans og sorterer etter relevans om den verdien er satt. (om det var forståelig) Edit: hastighet er ikke et problem da denne tabellen foreløpig er en svært liten tabell. Endret 20. oktober 2004 av Lokaltog Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå