2012-01-20 201 views
13

我收到來自Foursquare場館搜索API的一些不穩定的結果,我想知道是否有人有關於如何處理我的輸入參數以獲得最直觀的結果的任何提示。調整Foursquare API搜索查詢的最佳方式是什麼?

例如,假設我正在使用Google地圖API在「紐約,紐約」周圍搜索一個名爲「Ise Sushi」的場所,這個場地相當於(lat:40.7143528,lon:-74.00597309999999)。堵到Foursquare的API地點,我們可以得到:

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 

這一次,我在尋找場地的第二名結束了,即使它實際上是距離市中心較遠搜索(1072米,而833米使用第一個查詢)。

似乎有助於提高搜索質量的另一個修改是用下劃線替代空格來分隔我們的搜索項。例如,下面是用下劃線原始查詢:

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

這將產生最直觀的,似乎結果:我在尋找場地首先出現,並伴隨只是一個其他結果,「伊勢餐廳」(被標記爲「壽司店」)。對於它的價值,這實際上似乎是在Foursquare自己的網站上進行的the result set of the same search

我很好奇我應該從中學到哪些教訓。我應該減少座標的精度嗎?我是否應該將搜索條件與下劃線連接起來,如果是這樣,是否會限制用戶如何訂購搜索條件?

+2

偉大的問題,這真的應該由Foursquare的人回答。有一點需要注意,lat/lng精度:我認爲Foursquare會截斷你的lat/lng,因爲smarphones的傳感器不準確,在〜4th之後的任何事情都是不準確的,有時第5點是不相關的。不知道Foursquare在哪裏削減了數字,但要記住,他們可能會這樣做。 (順便說一下,第6或第7點之後的任何內容對於民用gps都無關緊要,不管其來源是什麼) –

回答

1

雖然我們可以通過排名改進來找到這個遙遠的精確匹配,但它通常也有助於指定intent = browse(儘管在這種情況下它看起來像現在可能會給您帶來更糟糕的結果) 。默認情況下,/場館/搜索使用intent = checkin,它會嘗試很難找到用於檢入的近距離匹配,但會犧牲場地可能與您的搜索匹配的其他方式。瞭解更多信息https://developer.foursquare.com/docs/venues/search

+0

我在早期嘗試過'intent = browse',但它似乎沒有產生根本性的改進。 Foursquare網站自己的搜索功能似乎產生了相當直觀的結果,因此我很好奇它與Venues API分享了多少內部結構。無論如何,我現在使用的策略是從下劃線替換查詢開始。如果結果數小於給定的限制,我將使用原始搜索詞重新進行查詢(即,沒有替換)。通過一些公認的有限測試,它似乎提供了很好的結果組合。 –

+1

是的,知道foursquare網站的搜索方式肯定會很好。我嘗試了各種方法來獲得準確的結果,並且我從未能夠接近網站上的結果。無論我使用的是什麼意圖,我是否使用半徑+一個點,是否使用邊界框來顯示位置等等,都不會給我們提供關於網站如何查詢地點的一些信息。 – ctide

相關問題