api search api возвращает дубликат места с неверным лат / долг - PullRequest
1 голос
/ 06 марта 2012

Я выполнил поиск места, который возвратил дубликат места. Дубликат места был идентичен, за исключением идентификатора места и информации о широте и продолжительности. Выполните тот же поиск на foursquare.com и дубликат не отображается. Как я могу исключить дубликат?

Вот вызов API (без секрета): https://api.foursquare.com/v2/venues/search?ll=38.468807,-77.372589&query=starbucks

Результаты:

{
    meta: {
        code: 200
    }
    notifications: [
    {
        type: "notificationTray"
        item: {
            unreadCount: 0
        }
    }]
    response: {
        venues: [
        {
            id: "4e4dc886bd41b76bef93082e"
            name: "Starbucks Coffee"
            contact: {
                phone: "5407209145"
                formattedPhone: "(540) 720-9145"
            }
            location: {
                address: "1495 Stafford Market Pl"
                lat: 38.47310969662029
                lng: -77.38591645407749
                distance: 1256
                postalCode: "22556"
                city: "Stafford"
                state: "VA"
                country: "United States"
            }
            categories: [
            {
                id: "4bf58dd8d48988d1e0931735"
                name: "Coffee Shop"
                pluralName: "Coffee Shops"
                shortName: "Coffee Shop"
                icon: {
                    prefix: "https://foursquare.com/img/categories/food/coffeeshop_"
                    sizes: [ 32 44 64 88 256 ]
                    name: ".png"
                }
                primary: true
            }]
            verified: false
            stats: {
                checkinsCount: 13
                usersCount: 11
                tipCount: 0
            }
            specials: {
                count: 0
                items: [ ]
            }
            hereNow: {
                count: 0
            }
        },
        {
            id: "4b8dd66ef964a520071033e3"
            name: "Starbucks"
            contact: {
                phone: "5407209145"
                formattedPhone: "(540) 720-9145"
            }
            location: {
                address: "1495 Stafford Market Place"
                crossStreet: "Garrisonville Road"
                lat: 38.470214117289444
                lng: -77.41142749786377
                distance: 3388
                postalCode: "22554"
                city: "Stafford"
                state: "VA"
                country: "United States"
            }
            categories: [
            {
                id: "4bf58dd8d48988d1e0931735"
                name: "Coffee Shop"
                pluralName: "Coffee Shops"
                shortName: "Coffee Shop"
                icon: {
                    prefix: "https://foursquare.com/img/categories/food/coffeeshop_"
                    sizes: [ 32 44 64 88 256 ]
                    name: ".png"
                }
                primary: true
            }]
            verified: true
            stats: {
                checkinsCount: 1885
                usersCount: 522
                tipCount: 14
            }
            url: "http://www.starbucks.com/"
            specials: {
                count: 0
                items: [ ]
            }
            hereNow: {
                count: 0
            }
            menu: {
                url: "https://foursquare.com/v/starbucks/4b8dd66ef964a520071033e3/menu"
                mobileUrl: "https://foursquare.com/v/4b8dd66ef964a520071033e3/device_menu"
            }
        },
        {
            id: "4d87c7bba98841bd5eaf3055"
            name: "Starbucks"
            contact: {
                phone: "5407209145"
                formattedPhone: "(540) 720-9145"
                twitter: "starbucks"
            }
            location: {
                address: "1495 Stafford Market Place"
                lat: 38.50188672
                lng: -77.37500964
                distance: 3688
                postalCode: "22556"
                city: "Stafford"
                state: "Virginia"
                country: "United States"
            }
            categories: [ ]
            verified: true
            stats: {
                checkinsCount: 17
                usersCount: 11
                tipCount: 0
            }
            specials: {
                count: 0
                items: [ ]
            }
            hereNow: {
                count: 0
            }
        }
    }
}

Второе место проведения, id = 4b8dd66ef964a520071033e3, является фактическим. Остальные 2 являются дубликатами.

1 Ответ

2 голосов
/ 10 марта 2012

Я бы исключил первый результат, потому что он имеет ключ / значение «Verified: false». Подтверждено: true означает, что владелец заявил это.

Я бы тогда отметил, что второй результат превосходит третий, потому что: 1. Имеет категорию 2. Счет чеков выше. В этом случае намного выше. 3. Он имеет ссылку на сайт (URL) 4. Имеет ссылки в меню 5. Местоположение имеет перекресток

По сути, если вы создали алгоритм для оценки полноты результата «компактного объекта», вы могли бы приблизиться к уникальности Foursquare.com. Я бы добавил все количество различных атрибутов и добавил бы вес проверенному атрибуту, количеству проверок и подсказок (которые сообщают вам, используют ли люди это место). Вероятно, я бы использовал имя, почтовый адрес и, возможно, номер телефона в качестве ключа. Почтовый индекс выглядит так, как будто его тоже можно использовать, но в этом случае вы заметите, что он неверен для результата, который должен быть каноническим.

Хороший справочный документ, который я использовал, чтобы помочь ответить на это: https://developer.foursquare.com/docs/responses/venue

...