【问题标题】:What's the best way to tune my Foursquare API search queries?调整 Foursquare API 搜索查询的最佳方式是什么?
【发布时间】:2012-01-20 17:26:05
【问题描述】:

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

例如,假设我正在使用 Google Maps API 搜索一个名为“Ise Sushi”的场所,位于“New York, NY”附近,相当于 (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

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

我很好奇我应该从中吸取什么教训。我应该降低坐标的精度吗?我应该用下划线连接我的搜索字词吗?如果是这样,这是否会限制用户对搜索字词的排序方式?

【问题讨论】:

  • 好问题,这真的应该由 Foursquare 的人来回答。需要注意的一件事是 lat/lng 精度:我 认为 Foursquare 会截断您的 lat/lng,因为 smarphone 的传感器不准确,第 4 点之后的任何内容,有时第 5 点都无关紧要。不知道 Foursquare 在哪里削减了数字,但请记住他们可能会这样做。 (顺便说一句,第 6 点或第 7 点之后的任何内容也与民用 gps 无关,无论来源是什么)

标签: search foursquare


【解决方案1】:

虽然我们可以对排名进行改进以找到这个遥远的完全匹配,但它通常也有助于指定 intent=browse(尽管在这种情况下看起来,现在它可能会给您带来更糟糕的结果)。默认情况下,/venues/search 使用 intent=checkin,它会非常努力地查找附近的匹配项以进行签到,但会以场地可能与您的搜索匹配的其他方式为代价。在https://developer.foursquare.com/docs/venues/search了解更多信息

【讨论】:

  • 我很早就尝试过intent=browse,但它似乎并没有产生根本性的改进。 Foursquare 网站自己的搜索功能似乎产生了相当直观的结果,所以我很好奇它与 Venues API 共享多少内部结构。无论如何,我现在使用的策略是从下划线替换查询开始。如果结果的数量少于给定的限制,我将使用原始搜索词重新查询(即不进行替换)。通过一些公认的有限测试,它似乎提供了很好的结果。
  • 是的,知道foursquare网站如何搜索肯定会很好。我尝试了多种方法来获得准确的结果,但我从未能够接近网站上的结果。不管我使用什么意图,我是否使用半径 + 一个点,我是否使用位置边界框等等。有没有机会向我们提供一些关于网站如何查询地点的信息?
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2016-08-21
  • 2021-08-17
相关资源
最近更新 更多