Loading…
Tilbage

Profilbillede

Bug i autocomplete api?

Adam Læssøe

Jeg er ved at bygge et inputfelt ovenpå jeres autocomplete api.

Det virker nogenlunde, men:

Når jeg skifter fra `startFra: vejnavn` til `adgangsAdresse` får jeg ikke adressesser med fra København. Det kunne ligne en off-by-one fejl.

Logger jeg vejnavn-resultaterne og følger `href`'en, kan jeg se at den københavnske vej er med der. Det eneste tidspunkt hvor den ikke er med er når der søges på kun det komplette vejnavn uden nummer. Se screen grab her.

Hej Adam,

Årsagen til at du ikke får adresser med fra København i den søgning er, at ranking-algoritmen placerer københavn lavere i prioriteringen end de andre adresser, så den ikke når at komme med i svaret. Det skyldes, at rankingen blandt andet baseres på hvor stor en del af adresseteksten der matcher det der står i autocomplete-feltet, og "københavn V" er længere end de andre postnumre og får derfor lavere ranking.

Vi tager det med som input, det ville give god mening at København var med i svaret. 

Hej Anders

Tak for forklaringen. Men jeg er nu ikke helt sikker på at jeg køber den:

Hvis jeg taster "Straussvej 1" kommer København-versionen som første element.

Her er screen grabs fra jeres egen implementering.

 

 

 

Hej Adam,

Den er nu god nok ;-)

Forklaringen er, at der sker to sorteringer af svaret.

Den første sortering udføres af databasens (PostgreSQL) rankingalgoritme. Det er den der placerer København sidst i resultatet i den første søgning, så København ikke kommer med der.

I anden søgning er der tilstrækkeligt få resultater til at København kommer med, selvom København rankes sidst af databasen. Men vi foretager også en sortering i applikationslaget, og i den sortering ranker de lige godt, hvorved sorteringen ender med at blive efter postnummer.

Hmm... ok. If you say so :)

Nu ved jeg ikke lige hvordan PG ranker her, men: "...2A, 9200 Aalborg" har næsten samme Levenshtein Distance fra Straussvej som "...2, 2450 København SV" og er med i svaret på "Straussvej".

Either way virker det.. overraskende.