komoot / photon

an open source geocoder for openstreetmap data
Apache License 2.0
1.96k stars 284 forks source link

City ignored in results ordering #215

Open dbapl opened 8 years ago

dbapl commented 8 years ago

http://photon.komoot.de/api/?q=%C5%82%C4%85kowa%20koszalin "city": "Mielno", is first then best match city": "Koszalin"

http://photon.komoot.de/api/?q=%C5%82%C4%85kowa%202%20koszalin city": "Bobolice" , is first then best match city": "Koszalin"

We have a system that separates city, street and house number. Is there a way to pass search data structurally to the API?

christophlingg commented 8 years ago

no, that's not possible. you want to use a location bias?

dbapl commented 8 years ago

QUERY: http://photon.komoot.de/api/?q=%C5%82%C4%85kowa%20koszalin RESPONSE:

{

    "features": 

[

{

    "geometry": 

{

    "coordinates": 

    [
        ​16.0582234,
        ​54.2588279
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​229345419,
    "osm_type": "W",
    "extent": 

        [
            ​16.0576079,
            ​54.2593395,
            ​16.0588482,
            ​54.2583677
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Mielno",
        "osm_value": "residential",
        "postcode": "76-032",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2508812,
        ​54.1756123
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​122508181,
    "osm_type": "W",
    "extent": 

        [
            ​16.2503463,
            ​54.175845,
            ​16.2512444,
            ​54.175308
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Koszalin",
        "osm_value": "residential",
        "postcode": "75-669",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.5897091,
        ​53.9505023
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​242932204,
    "osm_type": "W",
    "extent": 

        [
            ​16.5892561,
            ​53.9511883,
            ​16.5909545,
            ​53.950263
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Bobolice",
        "osm_value": "residential",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2145414,
        ​54.2856881
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​144589745,
    "osm_type": "W",
    "extent": 

        [
            ​16.2141012,
            ​54.286209,
            ​16.215758,
            ​54.2844797
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Osieki",
        "osm_value": "residential",
        "postcode": "76-003",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2509727,
        ​54.1740785
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​122508176,
    "osm_type": "W",
    "extent": 

        [
            ​16.2503463,
            ​54.175308,
            ​16.2517751,
            ​54.1732158
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Koszalin",
        "osm_value": "residential",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​15.974164,
        ​54.2432058
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 
{

    "osm_id": ​119154585,
    "osm_type": "W",
    "extent": 

        [
            ​15.973944,
            ​54.2437763,
            ​15.9746661,
            ​54.2425854
        ],
        "country": "Poland",
        "osm_key": "highway",
        "city": "Chłopy",
        "osm_value": "residential",
        "postcode": "76-034",
        "name": "Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2507368,
        ​54.1760005
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 

    {
        "osm_id": ​1342174150,
        "osm_type": "N",
        "country": "Poland",
        "osm_key": "amenity",
        "city": "Koszalin",
        "street": "Lubiatowska",
        "osm_value": "shelter",
        "postcode": "75-669",
        "name": "Lubiatowska / Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2507368,
        ​54.1760005
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 

    {
        "osm_id": ​1342174150,
        "osm_type": "N",
        "country": "Poland",
        "osm_key": "highway",
        "city": "Koszalin",
        "street": "Lubiatowska",
        "osm_value": "bus_stop",
        "postcode": "75-669",
        "name": "Lubiatowska / Łąkowa",
        "state": "West Pomeranian Voivodeship"
    }

},
{

    "geometry": 

{

    "coordinates": 

    [
        ​16.2929616,
        ​54.1384457
    ],
    "type": "Point"

},
"type": "Feature",
"properties": 

            {
                "osm_id": ​2707697784,
                "osm_type": "N",
                "country": "Poland",
                "osm_key": "tourism",
                "city": "Manowo",
                "street": "Droga Pożarowa 19",
                "osm_value": "information",
                "postcode": "76-015",
                "name": "Ekosystem łąkowy",
                "state": "West Pomeranian Voivodeship"
            }
        }
    ],
    "type": "FeatureCollection"

}
hbruch commented 6 years ago

With the current photon version (0.3-Alpha-1), for all queries above the expected matches are returned.

karussell commented 6 years ago

Thanks for testing this. Is something like this already included in the geocoder-tester to avoid a regression?

hbruch commented 6 years ago

Not yet. Very good suggestion, providing a geocoder-tester testcase should become good practice. I'll do so for this one.