2012-01-20 12 views
13

Sto ottenendo risultati irregolari dall'API di ricerca di Foursquare e mi chiedo se qualcuno ha qualche consiglio su come elaborare i miei parametri di input per i risultati più "intuitivi".Qual è il modo migliore per ottimizzare le query di ricerca API Foursquare?

Ad esempio, supponiamo di cercare un luogo denominato "Ise Sushi", intorno a "New York, NY", che è equivalente a (lat: 40.7143528, lon: -74.00597309999999) utilizzando l'API di Google Maps. Inserire la spina nella API Foursquare Venue, otteniamo:

https://api.foursquare.com/v2/venues/search?query=ise%20sushi&ll=40.7143528%2C-74.00597309999999 

questo produce risultati piuttosto deludente: la sede Sto cercando finisce invece in fondo alla lista, al 11 ° posto. La cosa interessante è che riduce la precisione delle coordinate sembra produrre risultati molto migliori. Ad esempio, supponiamo che eravamo per arrotondare le coordinate a 3 cifre significative:

https://api.foursquare.com/v2/venues/search?query=ise%20sushi&ll=40.7%2C-74.0 

Questa volta, il luogo che sto cercando finisce al 2 ° posto, anche se in realtà è più lontano dal centro di la ricerca (1072 metri, contro 833 metri utilizzando la prima query).

Un'altra modifica che sembra contribuire a migliorare la qualità della ricerca è sostituendo i caratteri di sottolineatura per gli spazi per separare i nostri termini di ricerca. Ad esempio, ecco la query originale con sottolineature:

https://api.foursquare.com/v2/venues/search?query=ise_sushi&ll=40.7143528%2C-74.00597309999999 

Questo produce i risultati più intuitive apparentemente: il luogo che sto cercando appare per la prima, ed è accompagnato da un solo altro risultato, "Ise Ristorante" (che viene etichettato come "ristorante sushi"). Per quello che vale, questo in realtà sembra essere the result set of the same search condotto sul sito web di Foursquare.

Sono curioso di sapere quali lezioni dovrei imparare da questo. Dovrei ridurre la precisione delle mie coordinate? Dovrei collegare i miei termini di ricerca con caratteri di sottolineatura e, in tal caso, limita il modo in cui un utente può ordinare i termini di ricerca?

+2

Grande domanda, questa dovrebbe essere la risposta di qualcuno di Foursquare. Una cosa da notare, la precisione lat/lng: I * penso * che Foursquare tronca il tuo lat/lng, perché i sensori degli smarphone non sono accurati, qualsiasi cosa dopo il ~ 4, a volte il 5 ° punto è irrilevante. Non so dove Foursquare taglia i numeri, ma ricorda che probabilmente lo fanno. (Comunque, qualsiasi cosa dopo il sesto o il settimo punto è irrilevante per i gps civili, non importa quale sia la fonte) –

risposta

1

Anche se ci sono miglioramenti nella classifica che possiamo fare per trovare questa corrispondenza esatta distante, in genere aiuta anche a specificare intent = browse (anche se in questo caso sembra che, per ora, possa darti risultati peggiori) . Per impostazione predefinita,/venues/search utilizza intent = checkin, che cerca molto difficile trovare le partite in prossimità per il check-in, a scapito di altri modi in cui un luogo potrebbe corrispondere alla tua ricerca. Per ulteriori informazioni: https://developer.foursquare.com/docs/venues/search

+0

Ho provato 'intent = browse' all'inizio, ma non sembra che abbia prodotto un miglioramento radicale. La funzione di ricerca del sito Web di Foursquare sembra produrre risultati ragionevolmente intuitivi, quindi sono curioso di sapere quanta parte della sua struttura interna condivide con l'API Venues. Ad ogni modo, la tattica che sto usando ora è iniziare con la query sostituita da underscore. Se il numero di risultati è inferiore a un determinato limite, eseguirò nuovamente una query utilizzando il termine di ricerca originale (ad esempio, senza sostituzioni). Attraverso alcuni test certamente limitati, sembra fornire un buon mix di risultati. –

+1

Sì, sarebbe sicuramente bello sapere come cerca il sito web di foursquare. Ho provato una varietà di metodi per ottenere risultati accurati e non sono mai stato in grado di avvicinarmi ai risultati sul sito web.Non importa quale sia l'intento che utilizzo, se utilizzo il raggio + un punto, se utilizzo le caselle di delimitazione per la posizione, ecc. Qualche possibilità di fornirci alcune informazioni su come il sito web sta interrogando i luoghi? – ctide

Problemi correlati