【发布时间】:2012-11-24 16:59:27
【问题描述】:
尝试使用提供的 Ruby 包装器实现 Factual API。希望返回地理点一定米数内的所有酒吧。我的查询如下所示:
factual.table("places").search("category_id"=>"312").geo("$circle" => {"$center" => [40.7811, -73.98], "$meters" => 10000}).rows
这会返回 200:OK 响应,但有 0 条记录(即使该位置在曼哈顿)。我很确定我传递类别信息的方式有问题。
根据 API 文档,我也尝试过像这样传递类别数据,这会返回语法错误:
factual.table("places").filters("category_ids" => {"category_ids":["6"]}).geo("$circle" => {"$center" => [40.7811, -73.98], "$meters" => 10000}).rows
还有这个,它返回 Factual 错误 *references unknown field category_ids*:
factual.table("places").filters("category_ids" => {"$in" => ["312", "338"]}).geo("$circle" => {"$center" => [40.7811, -73.98], "$meters" => 10000}).rows
我在此处关注文档示例并使用 v3:https://github.com/Factual/factual-ruby-driver/wiki/Read-API 和此处:http://developer.factual.com/display/docs/Places+API+-+Global+Place+Attributes
编辑:
我还尝试将 filters 方法更改为 search,如下所示:
factual.table("places").search("category_ids" => {"$in" => ["312", "338"]}).geo("$circle" => {"$center" => [40.7811, -73.98], "$meters" => 10000}).rows
这将返回地址中包含 338 的记录,与类别无关。很奇怪。几个小时以来,我一直在尝试不同的事情。我很确定这是我如何传递类别信息的问题。我正在尽我所能密切关注文档,但我无法让它发挥作用。
【问题讨论】:
-
您是否尝试在控制台中运行示例查询?问题可能出在您的钥匙上
-
是的。钥匙没问题。在尝试按类别进行限制之前,我能够获取从 api 返回的数据。另外,在调试模式下运行,所以我可以看到正在生成到 API 的请求。
-
增加半径并检查你做错了什么,我不能像这样帮助你
-
对不起,如果我不清楚。我已经多次编辑了我的问题,以展示我尝试过的内容和无效的内容。我确实增加了半径并完全删除了它。如果您需要我发布更多控制台输出或其他内容,请告诉我。谢谢。
-
不,问题不在于您的问题。我很久以前就使用过 Factual 并且目前没有代码来测试它并帮助你。但是您肯定在那里做了一些愚蠢的事情,导致了这个错误。尝试不同的组合。即没有位置部分或没有类别部分