2011-01-11 77 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