04. juli 2008 - 23:49Der er
1 kommentar og 1 løsning
Begrænse match-søgning med regexp?
Jeg har en hjemmeside, hvis indhold ligger som html-kode i en database. Jeg er ved at lave en søgefunktion, hvor brugeren indtaster søgeord i en simpel HTML-form. Resultatet (keywords) bruger PHP i følgende søgning:
"SELECT * FROM -tabel- WHERE MATCH (headline, content) AGAINST ('" . $keywords . "')";
Søgningen fungerer fint, men mit problem er at hvis man for eksempel søger på "form", "table" eller andre ord, som benyttes i HTML-syntaxen, så kommer sider med disse tags også med i søgeresultatet. Kan man fjerne html-koder fra søgeresultaterne, for eksemepel med regular expressions, og hvordan skulle min "SELECT" så se ud?
Der er åbenbart ingen der kan hverken af- eller bekræfte om det er muligt? Jeg vil derfor lade pointene gå, til dem der evt kan svare på følgende spørgsmål i stedet:
Findes der er en metode til at omgå serverens default systemvariable (fx. med query expansion)? Det er stadig førnævnte match full-text søgning der er i spil, men variablen ft_min_word_len er sat til 4 som standard, og jeg har behov for at kunne søge på ord med 3 bogstaver? Er det kun Unoeuro (som hoster webhotellet) der kan ændre denne variabel - eller kan jeg selv ændre det - eller kan jeg omgå variablen på anden vis?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.