Avatar billede styrken Nybegynder
21. marts 2005 - 13:53 Der er 5 kommentarer

Søg i søgeresultaterne

Hej

Jeg har et helt almindelig søgescript i PHP der søger i en tabel i en mySQL database. Men da denne tabel indeholder ufattelige store mængder tekst er chancen for at få rigtig mange - og deriblandt en del ubrugelige - resultater stor.

Derfor har jeg tænkt at det ville være fedt hvis man kunne søge i søgeresultaterne.

Desuden vil jeg gerne høre om i har andre ideer til hvordan man kan gøre søgningen bedre? På den måde at jo flere søgeord den matcher, jo højere kommer den op?
Avatar billede bromer Nybegynder
21. marts 2005 - 13:56 #1
Der er rimelig mange ting du kan gøre for at forbedre din søgning. Du kan prioritere resultater der matcher søgekriterierne flere gange højere end dem der matcher dem få. Og de resultater der matcher alle søgekriterierne samtidighed højere etc.
Avatar billede bromer Nybegynder
21. marts 2005 - 13:59 #2
Hvor har du egentlig data fra? Er det noget der ligger på en side hvor du tilbyder en søgning eller er det noget du har crawlet dig til? Hvis det ligger på din egen side kan du jo holde øje med en brugersession for at overvåge hvilke områder af sitet han besøger etc for at målrette søgeresultaterne enten mod disse eller væk fra dem. Bare husk at det er rimelig performence krævende at lave den store søgelogik.
Avatar billede styrken Nybegynder
21. marts 2005 - 14:17 #3
Jeg har dataene fra en mySQL-database med en lang række tekster. Jeg får dem så frem ved at sige  mysql_query("SELECT * FROM t_kap WHERE text LIKE '%$ord%'");

Men hvordan kan man sørge for at den løkke man kører ikke bare smidder resultaterne ud efter hvilken rækkefølge de ligger i  i databasen, men fx efter hvor mange gange søgeordet fremgår?

Og er det iøvrigt muligt at lave søgemaskinen sådan hvis man skriver 2 ord eller flere, behøver de ikke at være i samme sætning, men kun hiver de resultater frem der indeholder begge ord - også selv om de står uafhængigt fra hinanden?
Avatar billede bromer Nybegynder
21. marts 2005 - 16:01 #4
hvis du gerne vil søge på flere og skal du nok lave en SQL query, hvor du har opdelt de ord du modtager fra din form. Altså lave en split(" ",$ord) så du får de enkelte ord. Du kan så lave en masse forespørgsler til databasen.
Avatar billede bromer Nybegynder
21. marts 2005 - 16:01 #5
hvor split() så hedder explode() i PHP
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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