ResRobot platsuppslag sorteringsordning
Hej!
Jag undrar vilken ordning svaren från ResRobots platsuppslag kommer i? Är det "best match" på något sätt som kommer först, eller är det "weight" paramenetern som styr (mest trafikerade stationer överst t.ex.) , eller är det helt slumpat?
Följ inlägget
0
följare
Hej Joel,
Sortering av svaren i Resrobots Platsuppslag sker på vikt-parametern. Vikten är en måttstock på hur mycket trafik och hur många olika transportslag som trafikerar på hållplatsen.
Högst vikt kommer först.
Med vänlig hälsning, Åke
Hej Åke, tack för svaret!
Det verkar dock inte stämma helt om jag förstår det rätt, en sökning på "haning" ger:
<LocationList xmlns="hafas_rest_v1">
<StopLocation id="7498491" extId="7498491" name="HANINGE" lon="18.135575" lat="59.167565" weight="4681" products="16"/>
<StopLocation id="7445879" extId="7445879" name="Haninge centrum" lon="18.140986" lat="59.168042" weight="445" products="128"/>
<StopLocation id="7469781" extId="7469781" name="Haninge centrum" lon="18.141714" lat="59.169732" weight="95" products="128"/>
<StopLocation id="7469557" extId="7469557" name="Haningealpen" lon="18.219166" lat="59.167943" weight="95" products="128"/>
<StopLocation id="7400699" extId="7400699" name="Handen station (Haninge kn)" lon="18.134469" lat="59.167565" weight="4681" products="16"/>
<StopLocation id="7445878" extId="7445878" name="Handen närsjukhus (Haninge kn)" lon="18.144456" lat="59.174541" weight="445" products="128"/>
<StopLocation id="7469465" extId="7469465" name="Handenterminalen (Haninge kn)" lon="18.138388" lat="59.165318" weight="445" products="128"/>
<StopLocation id="7469793" extId="7469793" name="Hanveden (Haninge kn)" lon="18.108454" lat="59.125811" weight="445" products="128"/>
<StopLocation id="7445881" extId="7445881" name="Handen Handenterminalen (Haninge kn)" lon="18.136689" lat="59.167565"/>
<StopLocation id="7469527" extId="7469527" name="Hallstens väg (Haninge kn)" lon="18.145058" lat="59.188951" weight="445" products="128"/>
</LocationList>
resultat nr 5 har högre vikt än resultat 4. Är det kanske ändå någon "best match" på strängen som gör att haningealpen kommer före handen station?
Hej Joel!
Det verkar som jag har fel. Jag får återkoppla till vår systemleverantör och återkomma till dig senare.
Med vänlig hälsning, Åke
Hej Igen Joel,
Det finns en väldigt avancerad algoritm bakom sorteringen där man blandar bästa matchning med mest trafik.
Om du önskar kan jag skicka över ett långt dokument på engelska som beskriver logiken i detalj. Ge mig i så fall din E-postadress.
Med vänlig hälsning, Åke
Hej! Tack för svaret.
Maila mig gärna på joelholmberg88@gmail.com
Tack!
Tack för svaren Åke! Då tolkar vi detta som att det bästa resultatet ligger först i listan, trots att det inte alltid är den som har högst weight.
Här är något konstigt: En sökning på "Haning" ger massor av träffar (se Joels mail ovan), bland annat "Haninge Centrum". Men söker man på "Haninge" får man bara en träff "HANINGE". Vad är detta förresten, träffen med bara versaler? Och varför rankas den högst även när man söker på "Haning"? Känns inte som sorteringen funkar klockrent.
<LocationList xmlns="hafas_rest_v1">
<StopLocation id="7498491" extId="7498491" name="HANINGE" lon="18.135575" lat="59.167565" weight="4676" products="16"/>
</LocationList>
Hej Hampus,
Jag ska försöka att förklara detta så enkelt som möjlig.
Alla namn med namn som är i VERSALER är hållplatsgrupper som Samtrafiken hittat på för att underlätta sökning för resenärer som inte vet vad hållplatsen som dom vill åka ifrån heter.
Exempel på problematiken är Stockholms Cityterminal, men STOCKHOLM känner alla till. Det går i Resrobot att få fram hållplatsinformation på bägge.
Det går även att göra resesökningar men det finns ett problem att vår reseökningsalgoritm tar bort relativt långsamma resealternativ om dessa avgår samma tid och tillhör samma trafiktyp.
Hållplatsernas höga vikt beror på att det är flera hållplatser i en grupp.
Att du endast får ett svar beror på att du har en direkt match mot sökt namn.
Det är min rekommendation att inte använda Samtrafikens gruppering, grupperingen kan ändras på Samtrafiken och ingen information kommer gå ut om detta publik.
Jag hoppas du förstått min förklaring och följermin rekommendation ovan.
Med vänlig hälsning, Åke
Hej Åke! Tack för svaret! Vi förstår, och håller med om att vi gärna undviker att använda denna gruppering. Hur gör vi för att få "normala" svar istället? Vi vill alltså kunna söka på haninge och då få förslaget haninge centrum bl.a. Precis så som användare förväntar sig att det ska fungera. Går det?
Hej Joel,
Jag tror att det är fel i APIets svar. Svaret borde leverera flera alternativ (som Resrobot gör) även för Haninge.
Jag behöver dra detta med leverantören.
Med vänlig hälsning, Åke
Hej Joel,
Vår leverantör kommer att lägga till ett ? i slutet av sökta hållplastsnamnet för att alltid tvinga fram alternativa hållplatsnamn. Det kommer att vara implementerat om en vecka drygt.
Om ni inte kan vänta en vecka kan ni själva tillfälligt lägga till ? på namnfältet.
Med vänlig hälsning, Åke
Superbra! Vi ser fram emot att testa den nya lösningen om en dryg vecka, vi klarar oss nog tills dess :-)
Hej Joel,
Nu är det implementerat. Återkom om ni ser något som är konstigt.
Med vänlig hälsning, Åke
Hej igen!
Nu sitter vi och testar det nya ResRobot APIet och har fått samma problem igen. Sökning på "lun" ger t.ex. "lunds centralstation" men sökning på "lund" ger enbart ett svar, "LUND".
Är det kanske så att den gamla fixen med frågetecknet måste appliceras igen på nya versionerna av APIet?
Mvh Joel
Hej Joel.
Ja, just nu så måste man använda den gamla fixen med frågetecknet för att tvinga fram alla matchningar.
//Daniel
Den fixen var inlagd på er leverantörs sida förut. Menar du att det nu är upp till oss att lägga in den fixen själva? Låter mer som att den fixen borde åter-appliceras av er leverantör, eller?
Bara så att jag förstått rätt alltså 😀
Ursäkta att jag var lite otydlig. Fixen är fortfarande implementerad hos vår leverantör och ska fungera i den nya versionen också.
//Daniel
Det gör den dock inte. Jämför dessa sökningar på "lun" och "lund":
https://api.resrobot.se/v2/location.name?key=<NYCKEL>&input=lun&format=json
https://api.resrobot.se/v2/location.name?key=<NYCKEL>&input=lund&format=json
Menade att du måste lägga på '?' i slutet för att tvinga api:et att visa alla matchningar.
https://api.resrobot.se/v2/location.name?key=<NYCKEL>&input=lund?&format=json
Om man inte har med '?' och skriver ett perfekt matching så kommer man bara få tillbaka den perfekta matchingen.
//Daniel
Ok. Men om du läser Åkes svar ovan så hade er leverantör gjort den här åtgärden på SIN sida förut. Detta har fungerat bra i många månader utan att vi behövt lägga på " ? " på vår sida.
Nu är detta alltså ändrat, så att alla användare av APIet istället måste lägga på fixen själva, är det korrekt uppfattat av mig?
Du förstår kanske att jag blir lite förvirrad av alla svar som säger olika saker.
Det är OK för oss att lägga på denna special-åtgärd, men jag tycker snarare att leverantören borde fixa detta (som de gjort förut) eftersom det är en uppenbar brist i APIet.
Ahh, var jag som läste Åkes svar lite slarvigt. Jag ska prata med Åke om hur vi löser det här på bästa sätt. Återkommer senare idag eller tidigt imorgon.
//Daniel
Hej igen Daniel!
Vi ser nu att även gamla ResRobot APIt inte längre har en fungerande fix för detta. Vi får samma problem på gamla API versionen. Kanske är bra att veta.
/Joel
Hej Joel
Jo jag såg att det inte fungerade i gamla ResRobot APIt. Så det kanske var något som hände när vi började gå över till v2.
Har pratat med Åke nu och vi kom fram till att det är bra om utvecklarna själva får välja om de vill ha med frågetecknet eller inte. Så tyvärr kommer vi inte be vår leverantör att implementera det här just nu.
Så just nu måste ni gå över till att själva implementera frågetecknet i era api anrop. Hoppas att det inte ställer till för mycket jobb för er.
//Daniel
Ok tack för svaret!
Det är inga större problem för oss just nu. Men om ni ändrar er och lägger på frågetecknet hos leverantören så kommer det ju komma 2 frågetecken på våra anrop och då kanske allt slutar fungera helt plötsligt? Det vore mycket dåligt och det är det vi är rädda för.
Dessutom: att söka på "lund" och inte få "lund Centralstation" som förslag...jag kan inte föreställa mig en enda utvecklare eller slutanvändare som VILL ha det så, så jag håller inte alls med om att det är bra att utvecklare tvingas välja. Men det är bara min åsikt såklart.
Hej
Api:et fungerar korrekt även om man lägger på flera frågetecken på parametern.
//Daniel
Ok, bra, då kör vi på det tills vidare.