Avatar billede krak Nybegynder
09. marts 2005 - 11:54 Der er 6 kommentarer og
1 løsning

Full-text / Match-Against søgning

Hej

Jeg er ved at teste mysql's fulltext-søgning, men enten fungerer den ikke for godt, eller også laver jeg fejl.

Der er oprettet et FULL-TEXT index med de kolonner jeg søger i.

SELECT <kolonner>, MATCH(<kolonner>) AGAINST ('findmig') as score FROM '<tabel>' WHERE MATCH(<kolonner>) AGAINST ('findmig') order by score desc

Til tider returnerer den en score på 0 for et ord, som findes i indtil flere rækker i de kolonner den søger i.

Er det muligt at få det nøjagtige antal forekomster, så man kan skelne om ordet ikke findes, eller om ordet er blokeret som stopord, eller der blot er for mange forekomster til den finder det relevant at vise.

Jeg har ledt i mysql's reference på deres hjemmeside, men kan ikke umiddelbart finde det. Er der nogen der ved det?
Avatar billede -thomas- Nybegynder
09. marts 2005 - 15:41 #1
Kan det skyldes, at du søger på et ofte forekommende ord? Hvis et ord findes i mere end halvdelen af dine records, returneres ingeting.
Avatar billede -thomas- Nybegynder
09. marts 2005 - 15:42 #2
Du kan få returneret antallet af resultater ved at bruge COUNT(*).
Avatar billede krak Nybegynder
10. marts 2005 - 15:39 #3
Som jeg skriver er det antal forekomster af SØGEORDET for hver række jeg efterlyser, og ikke antallet af RÆKKER, som dit 2.svar omhandler

Og som jeg også skriver, er det netop for at afdække om hvorvidt den returnerer 0 rækker fordi der ikke er nogen hits, eller den returnerer 0 rækker fordi søgeordet er et stopord:
Citat fra http://dev.mysql.com/doc/mysql/en/fulltext-search.html:
"A stopword ... is so common that it is considered to have zero semantic value"

Altså: Er det muligt at få det præcise antal af forekomster i rækken, SELVOM match regner med at det er et stopord?
Avatar billede -thomas- Nybegynder
10. marts 2005 - 17:09 #4
Nej, det mener jeg ikke er muligt. Men du kan bruge BOOLEAN MODE for ikke at få returneret 0 ved ofte forekommende ord.
Avatar billede krak Nybegynder
10. marts 2005 - 17:45 #5
Har desværre mysql 3.23 og BOOLEAN MODE er først tilgængelig fra v. 4.0
:(
Avatar billede krak Nybegynder
22. juni 2005 - 14:56 #6
Lukker spm. Hvis Hr "-thomas-" vil have en halv portion point, kan han lægge et svar...
Avatar billede -thomas- Nybegynder
23. juni 2005 - 12:07 #7
Du beholder bare pointene.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester