Я получаю некоторые неустойчивые результаты от API поиска в Foursquare, и мне интересно, есть ли у кого-нибудь советы о том, как обрабатывать мои входные параметры для самых "интуитивных" результатов.
Например, предположим, что я ищу место под названием "Ise Sushi", вокруг "Нью-Йорк, Нью-Йорк", что эквивалентно (lat: 40.7143528, lon: -74.00597309999999) с использованием API Карт Google. Подключаясь к API-интерфейсу Foursquare Venue, мы получаем:
https://api.foursquare.com/v2/venues/search?query=ise%20sushi&ll=40.7143528%2C-74.00597309999999
Это дает довольно сильные результаты: место, которое я ищу, заканчивается довольно далеко по списку, на 11-м месте. Интересно, что уменьшение точности координат, как представляется, дает гораздо лучшие результаты. Например, предположим, что мы должны округлить координаты до 3 значащих цифр:
https://api.foursquare.com/v2/venues/search?query=ise%20sushi&ll=40.7%2C-74.0
На этот раз место, которое я ищу, попадает на 2-е место, хотя оно фактически находится дальше от центра поиска (1072 метра, против 833 метров с использованием первого запроса).
Другая модификация, которая помогает улучшить качество поиска, заменяет символы подчеркивания для пробелов, чтобы отделить наши условия поиска. Например, здесь исходный запрос с подчеркиванием:
https://api.foursquare.com/v2/venues/search?query=ise_sushi&ll=40.7143528%2C-74.00597309999999
Это дает самые интуитивно понятные результаты: место, которое я ищу, появляется первым, и сопровождается еще одним результатом "Ise Restaurant" (который помечен как "суши-ресторан" ). Для чего это стоит, на самом деле это выглядит как результирующий набор того же поиска, который ведется на собственном веб-сайте Foursquare.
Мне любопытно, какие уроки я должен извлечь из этого. Должен ли я уменьшать точность моих координат? Должен ли я связывать свои условия поиска с символами подчеркивания, и если да, то ограничивает ли пользователь порядок своих поисковых запросов?