调整Foursquare API搜索查询的最佳方法是什么?

时间:2012-01-20 17:26:06

标签: search foursquare

我从Foursquare的场地搜索API获得了一些不稳定的结果,我想知道是否有人有关于如何处理我的输入参数以获得最“直观”结果的任何提示。

例如,假设我在“New York,NY”周围搜索名为“Ise Sushi”的场地,使用Google Maps API相当于(lat:40.7143528,lon:-74.00597309999999)。插入Foursquare Venue 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

这产生了最直观的结果:我正在寻找的场地首先出现,并伴随着另外一个结果,“伊势餐厅”(被标记为“寿司餐厅”)。对于它的价值,这实际上似乎是the result set of the same search在Foursquare自己的网站上进行的。

我很好奇我应该从中吸取哪些教训。我应该降低坐标的精度吗?我是否应该将我的搜索字词与下划线相关联,如果是,那是否会限制用户订购搜索字词的方式?

1 个答案:

答案 0 :(得分:1)

尽管我们可以在最后找到这种远程完全匹配的排名改进,但它通常也有助于指定intent = browse(虽然在这种情况下看起来像现在,它可能会给你带来更糟糕的结果)。默认情况下,/场所/搜索使用intent = checkin,它会很难找到办理登机手续的近距离比赛,但会牺牲场地可能与您的搜索匹配的其他方式。请访问https://developer.foursquare.com/docs/venues/search

了解详情