PDOK Locatieserver geocoder geeft vreemde score/match

Ik gebruik de LocatieServer voor het geocoderen van adressen. Nu gaat dit meestal goed, maar soms krijg ik toch wel vreemde resultaten.

Een voorbeeld: Jan Evertsenlaan 2, 2253XG, Voorschoten

Als ik de vrije geocoder gebruik ( /free) dan krijg ik eerst alle varianten van de Jan Evertsenlaan 2 met huisletter-toevoegingen (2a, 2b, etc.) voordat ik het juiste adres krijg zonder toevoeging. In dit geval is dat pas het 19e resultaat. De score hiervan is 58.95669, terwijl de scores van de adressen mét huisletter 59.511005 is. Dat is naar mijn idee niet logisch. Het adressen met huisletter zijn immers geen 100% match op het adres. En het adres waar ik naar op zoek ben komt wel 100% overeen.

Is dit een fout in de LocatieServer? Of doe ik iets fout bij mijn bevraging? Mijn volledige request is nu: https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?rows=50&q=Jan%20Evertsenlaan%202%2C%202253XG%2C%20Voorschoten&

Kleine (latere) toevoeging: ik zie dat de scores bij de suggest-service wel beter lijken te kloppen. Daar krijgt het exacte adres een score van 37.28 en de adressen met huisletters een score van 36.03. Alleen is de suggest-service voor mij nu geen oplossing, dus het zou mooi zijn als de free geocoder service vergelijkbare resultaten gaat geven.

Beste Terralytics,

Dit is een lastig probleem met de locatieserver.
We hebben hier ook geen volledig beeld van waarom dit gebeurd.
De meest waarschijnlijke theorie die wij hebben heeft met een veld die voor de suggest api worden gebruikt te maken.

Dit veld heet suggest en zie je niet standaard terug in de resulaten, maar kan je wel terug krijgen met de “fl” parameter: https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?rows=50&q=Jan%20Evertsenlaan%202%2C%202253XG%2C%20Voorschoten&fl=weergavenaam,suggest

hierin zitten verschillende schrijfwijzes die voor een object gebruikt kunnen worden ten behoeve van de autocompletion van de suggest api.

En de locatieserver probeert de zoek term “Jan Evertsenlaan 2%2C 2253XG%2C Voorschoten” te matchen met zoveel mogelijk velden om de score te bepalen.
En omdat het suggest veld meer opties heeft bij resultaten met een huisletter of huisnummertoevoeging, wordt daar de score hoger.

Wij weten niet 100% zeker of dit de reden is, maar is ons meest waarschijnlijke antwoord.
Maar wij weten wel, dat om dit te verbeteren dit grote impact zal hebben in het huidige gebruik van de locatieserver.

Beste @Wouter_Remijn , bedankt voor de snelle reactie. Op zich is de uitleg logisch, maar niet het antwoord waar ik op had gehoopt natuurlijk. Ik heb het namelijk ook even geprobeerd met de suggest service (zie mijn toevoeging aan de originele post die ik ongeveer gelijk met jouw antwoord schreef). Bij de Suggest service lijkt het dus wel beter te gaan. Is er voor een workaround met de Free service om wel het juiste resultaat als eerste te krijgen?

niet echt
als de suggest service wel de gewenste volgorde geeft, is het dan niet mogelijk om de suggest en lookup api te gebruiken?

en als je de suggest api output meer op de free api output wilt laten lijken kun je de “fl” parameter meegeven.
Hierin kun je elk veld dat je terug wilt krijgen in zetten (voorbeeld met een aantal velden, maar je kan er altijd meer instoppen, of je kan “*” gebruiken om alle velden terug te krijgen)

https://geodata.nationaalgeoregister.nl/locatieserver/v3/suggest?rows=50&q=Jan%20Evertsenlaan%202%2C%202253XG%2C%20Voorschoten&fl=weergavenaam,type,bron,woonplaatscode,geometrie_rd

1 like

Ik had niet scherp dat ik met de suggest-service exact dezelfde parameters kon meegeven als bij de free service. Nu ik dat weet was het een simpele vervanging van het woord ‘free’ door ‘suggest’ in mijn script. En daarmee worden de resultaten een stuk logischer! Ik kan dus vooruit, maar ik ben wel erg benieuwd waarom de berekening van de scores bij de twee services anders werkt. Wellicht is dat wel een vrij simpele fix voor jullie? Of anders wellicht goed om dit in de documentatie van de API op te nemen?