当*不应该是*时,YQL响应为null

时间:2011-01-11 17:04:26

标签: jquery ajax json yql

使用http://jobs.sitesixteen.com/作为参考。

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

这是一个形式错误的查询,我只是没有看到它,或雅虎的结局?

与往常一样,任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:1)

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

  

此请求包含远程过滤器(text =“san *”)和本地过滤器(country.code =“US”)。远程过滤器调用一个Web服务,该服务尝试查找世界上以“san”开头的所有城镇地名,但由于存在这么多,因此会发生超时,并且不会返回任何结果。您需要在文本值中更具选择性(添加更多起始字符)以允许Web服务完成请求。 “洛杉矶*”之所以成功,是因为世界上以“洛杉矶”开头的城镇较少。

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

答案 1 :(得分:-1)

您没有提供足够的信息。

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

通过将查询修改为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中的不一致无关。