Подтвердить что ты не робот

Какой лучший способ настроить мои поисковые запросы API Foursquare?

Я получаю некоторые неустойчивые результаты от 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.

Мне любопытно, какие уроки я должен извлечь из этого. Должен ли я уменьшать точность моих координат? Должен ли я связывать свои условия поиска с символами подчеркивания, и если да, то ограничивает ли пользователь порядок своих поисковых запросов?

4b9b3361

Ответ 1

Несмотря на то, что есть улучшения ранжирования, мы можем с нашей точки зрения найти это далекое точное совпадение, как правило, также помогает указать aim = browse (хотя, похоже, в данном случае это может дать худшие результаты). По умолчанию /venues/search использует aim = checkin, который действительно пытается найти близкие совпадения для проверки, за счет других способов место встречи может соответствовать вашему поиску. Подробнее... https://developer.foursquare.com/docs/venues/search