Avatar billede kwanstudios Nybegynder
13. december 2005 - 00:24 Der er 10 kommentarer og
1 løsning

Sorter søgeresultater

Jeg ønsker at samle en bunke PDF filer og gøre dem søgbare, den umiddelbart bedste måde at gøre dette på var at placere dem et centralt sted og lave en google søgning. Denne Google søgning vil jeg gerne lave gennem deres API for at kunne styre design o.a. bedre. Jeg fandt denne artikel og byggede en søgemaskine ud fra det: http://www.stylegala.com/articles/making_a_google_search_engine_with_standards.htm

Den virker nu fint, efter lidt tweaking med UTF-8 (søgninger med æøå kunne ikke lade sig gøre før), men den viser antallet af resultater meget underligt. Et eksempel er en søgning på "venstre" (i mit eksempel har jeg lavet en søgemaskine der søger på ft.dk efter PDF filer): http://www.boetter.dk/search/index.php?q=venstre

Her kan man gå til et uendeligt antal sider i "resultatsider", f.eks. side 41: http://www.boetter.dk/search/index.php?q=venstre&start=400 - men den findes egentlig ikke.

I kan se kilden på: http://www.boetter.dk/search/index_source.txt

Hvad gør jeg galt? Hvordan laver jeg det ordentligt? Er der andet helt i skoven? Jeg er på ingen måde PHP ekspert.
Avatar billede tjp Mester
13. december 2005 - 04:09 #1
Hvis du efter denne linje:

$to_disp = floor($amount/$pref->results) > $pref->results ? ($disp/$pref->results)+11 : (floor($amount/$pref->results)+1);

tilføjer denne:

$to_disp = $to_disp > floor($amount/$pref->results)? floor($amount/$pref->results): $to_disp;

burde det ønskede vist opnås (plus/minus et par sider - jeg har ikke lige testet det). ;-)
Avatar billede kwanstudios Nybegynder
13. december 2005 - 13:05 #2
Det hjælper ikke ligefrem, nu siger den der ikke er nogle resultater når jeg går til resultatsiderne. Prøv f.eks. at se http://www.boetter.dk/search/index.php?q=venstre&start=10
Avatar billede kwanstudios Nybegynder
13. december 2005 - 13:09 #3
Der var jeg vist lidt for hurtig, det virker nu. Men kan vi fjerne "Næste" knappen her: http://www.boetter.dk/search/index.php?q=venstre&start=360 ?
Avatar billede tjp Mester
13. december 2005 - 14:41 #4
Den er ikke helt god. Hvad sker der hvis du ændre 'floor' til 'ceil' i den tilføjede linje?
Avatar billede kwanstudios Nybegynder
13. december 2005 - 16:21 #5
Ikke det store. Men det drejer sig vel nærmere om at der skal et ekstra tal på i resultatsiderne? For "Næste" forsvinder faktisk korrekt, men den sidste vises ikke. Prøv selv at trykke Næste et par gange så ender du på http://www.boetter.dk/search/index.php?q=venstre&start=380

Kan det ordnes?
Avatar billede kwanstudios Nybegynder
17. december 2005 - 16:46 #6
Er der ingen der kan hjælpe?
Avatar billede tjp Mester
18. december 2005 - 00:43 #7
Lidt lapning, men hvad om du ændre:
$to_disp = $to_disp > floor($amount/$pref->results)? floor($amount/$pref->results): $to_disp;

til:
$to_disp = $to_disp > floor($amount/$pref->results)? floor($amount/$pref->results)+1: $to_disp;

Altså lægger én til. Hjælper det??
Avatar billede kwanstudios Nybegynder
20. december 2005 - 01:17 #8
Undskyld den sene respons. Jeg har rettet som du sagde, og det afhjælper egentlig det meste af problemet. Men hvis du ser her: http://www.boetter.dk/search/index.php?q=venstre&start=360 så står der "Resultatside: Forrige 27 28 29 30 31 32 33 34 35 36 37 Næste", klikker jeg næste forsvinder Næste rigtigt nok, men i selve listen kommer aldrig en "38". Giver det mening?
Avatar billede tjp Mester
20. december 2005 - 01:58 #9
Problemet er at nedenstående for-løkke ikke bliver kørt, når du står på sidste side:
for($x=(($disp/$pref->results)+1); $x<$to_disp; $x++)
{
  $html.= ($x-1)*$pref->results == $disp ? "<span>$x</span>&nbsp;" : "<a href=\"".$_SERVER['PHP_SELF']."?q=$query&amp;start=".(($x-1)*$pref->results)."\">$x</a>&nbsp;";
}

Hvad om vi lapper endnu engang og ændrer:
$to_disp = $to_disp > floor($amount/$pref->results)? floor($amount/$pref->results)+1: $to_disp;

til:
$to_disp = $to_disp > floor($amount/$pref->results)? floor($amount/$pref->results)+2: $to_disp;

Er det bedre?
Avatar billede kwanstudios Nybegynder
25. december 2005 - 18:18 #10
Jeg tror det lykkedes så godt som muligt, jeg takker for hjælpen!
Avatar billede tjp Mester
26. december 2005 - 00:24 #11
Velbekomme og God Jul...
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