Avatar billede noerbo Nybegynder
06. februar 2009 - 01:04 Der er 4 kommentarer og
1 løsning

Design til søgning på keywords

Hej

  Jeg står og er ved at lave en søgning, der skal fungere ved at man slår op via nogle keywords i databasen. Det skal siges at jeg ikke får hele ordet, men måske kun begyndelsen, og så skal jeg finde alle keywords med den pågældende begyndelse.
  Så søgning på side, vil både passe på side1, side2 osv.


  Hvert keyword skal så kunne pege på en eller flere beskrivelser af de sider de passer på.

  Selv har jeg 2 løsningsforslag, men kan ikke helt bestemme mig for hvilken en der er bedst:

1)
  Her lader jeg søgeordene ligge sammen med et ref til den beskrivelse der skal vises, hvis de passer. Det skal bemærkes at det samme søgeord så kommer til at ligge flere gange, da det godt kan passe til forskellige beskrivelser(sider)

2)
  Her prøver jeg at indføre et mellemled, så hvert søgeord kun optræder en gang:

  Hvert søgeord har en ref til en anden tabel. I denne tabel er det angivet hvilket ref der passer til hvilke beskrivelse.

  Min ide med 2) er at gøre tabellen med nøgelord så lille som mulig, hvilket måske kan gøre opslaget lidt mere effektivt? Prisen er så et ekstra opslag i en tabel, der ligger imellem, men her vil jeg så til gengæld have de præcise nøgler.


  Hvilket af de 2 ovenstående designs vil i det lange løb være mest effektiv, eller jeg skal måske overveje noget helt tredje?
Avatar billede arne_v Ekspert
06. februar 2009 - 01:19 #1
Jeg ville vælge #1, da din mellem tabel i #2 vil have lige så mange rækker som søgeords tabellen i #1 !

Mne hvis din database understøtter FULLTEXT, så behøver du slet ikke lave noget som helst. :-)
Avatar billede noerbo Nybegynder
06. februar 2009 - 01:24 #2
Det vil sige, hvis jeg nu har søgeordet foo mange gange med forskellige ref, vil det ikke være meget dyrere at skulle finde alle 10 fremfor kun at skulle finde 1 og så have nøglerne til den store database givet?

Den understøtter faktisk FULLTEXT, så kunne godt ske det var en nemmere løsning
Avatar billede arne_v Ekspert
06. februar 2009 - 01:32 #3
Som jeg ser det så:

#1:

søgeord
eksperten.dk      1
eksperten.dk      2
eksperten.dk      3
computerworld.dk  3
computerworld.dk  4

data
1  ...
2  ...
3  ...
4  ...

først søger du i 5 rækker efter ord og derefter søger du i 4 rækker efter id

#2:

søgeord
eksperten.dk      1
computerworld.dk  2

mellem
1  1
1  2
1  3
2  3
2  4

data
1  ...
2  ...
3  ...
4  ...

først søger du i 2 rækker efter ord, derefter søger du i 5 rækker efter z og til sidst søger du i 4 rækker efter id
Avatar billede noerbo Nybegynder
18. marts 2009 - 18:00 #4
Kan se jeg har et par hængepartier. Mange tak for hjælpen arne_v. Gider du ikke smide et svar?
Avatar billede arne_v Ekspert
18. marts 2009 - 18:09 #5
gerne
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