2011-01-11 54 views
0

使用http://jobs.sitesixteen.com/作为参考。YQL响应null当它*不应该*为

我为城市使用YQL,州自动完成。如果您输入“san”,则response from YQLnull。我发现奇怪的是,如果您输入“los”,则response from YQL会按预期返回结果。

这是一个格式不正确的查询,我只是没有看到它,或者在雅虎的一端?

一如既往,任何帮助表示赞赏。

+0

不要认为问题与YQL有关。对我来说,它看起来像位于API的结尾(或任何此URL:http://where.yahooapis.com/v1/places.q)。他们是否指定在指定“文本”键时搜索哪些数据?看起来数据在结尾处的索引是不同的。 – spier 2011-01-12 00:30:30

回答

1

这是我从雅虎的Eddie Babcock收到的回复。

该请求包含远程过滤器(text =“san *”)和本地过滤器(country.code =“US”)。远程过滤器调用一个Web服务,试图查找世界上以“san”开头的所有城镇地名,但由于数量太多,发生超时,并且没有结果返回。您需要对文本值进行更多选择(添加更多起始字符)以允许Web服务完成请求。 “洛杉矶”成功了,因为世界上以“洛杉矶”开头的城镇更少。

这仍然让我相信这是他们实施它的方式的一个问题,但至少现在这个问题已经解决了。

-1

您未提供足够的信息。

请注意,通过手动填充that particular website上的状态字段与san它永远不会返回列表。

通过将您的查询修改为san f(SAN空间F),它将返回预期结果。

http://query.yahooapis.com/v1/public/yql?callback=jsonp1294734397302&q=select+name,admin1.code+from+geo.places+where+text%3D%22san%20f*%22+and+country.code%3D%22US%22+limit+10+|+sort(field%3D%22popRank%22,+descending%3D%22true%22)&format=json&callback=cbfunc 

编辑

该网站是这样设计的。这是来自jQuery函数的一条评论,它将数据拉回到下拉列表中。它解释了查询背后的逻辑。

// select name,admin1.code from geo.places where text="medf*" and country.code="US" limit 10 | sort(field="popRank", descending="true")

注意它是如何限制为10?

输入返回10个以上结果的搜索词将不会返回任何结果。输入san会产生10个以上的结果,因此不会返回任何地方,因为输入los会返回3个结果。

这与YQL中的不一致有关。

+0

这并不是说我没有提供足够的信息,而是因为YQL在搜索“san”与“los”相比时提供了不一致的结果。我知道“san f”提供了结果,但人们会认为,如果不是这种情况,它会采用“los a”或“los g”来返回结果。我对雅虎的不一致感到困惑。 – S16 2011-01-11 17:18:26

+0

@Greg - 我已经更新了我的答案,谢谢。 – codingbadger 2011-01-11 17:27:55