2011-11-17 42 views
14

有誰知道如何通過距搜索地點的距離來訂購Facebook地點嗎?請注意,我不想在我的客戶端應用程序中訂購結果。我希望Facebook服務器爲我提供有序的結果以便分頁。我總是希望將後續查詢的地方附加到數組的末尾。Facebook地點:按距離排列搜索結果

這似乎並不可能使用圖形API查詢,如:

https://graph.facebook.com/search?q=coffee&type=place&center=37.76,-122.427&distance=1000& ....因爲沒有辦法告訴Facebook的命令的結果。最近的地方可能是返回結果列表中的最後一個。

我一直在嘗試使用FQL複製上述查詢,但存在的問題是名稱&在Facebook place table中的描述字段不可索引。 FQL如:

SELECT 
    page_id, name, display_subtext, description, 
    distance(latitude, longitude, "37.76", "-122.427"), checkin_count 
FROM place 
WHERE ((distance(latitude, longitude, "37.76", "-122.427") < 25000) 
    AND (strpos(lower(name), "coffee") >= 0 
    OR strpos(lower(description), "coffee") >= 0)) 
ORDER BY distance(latitude, longitude, "37.76", "-122.427") ASC 
LIMIT 20 OFFSET 0 

問題的,這是該領域namedescription不在地方臺可轉位。這意味着並非所有的結果都是由FQL返回的,結果很多。

有沒有人知道一種方法來做到這一點?

回答

12

它似乎有可能使用此FQL。 contains功能似乎與q= Graph API參數一樣。這裏是你的例子contains

SELECT page_id, name, description, latitude, longitude, checkin_count, distance(latitude, longitude, "37.76", "-122.427") 
FROM place 
WHERE distance(latitude, longitude, "37.76", "-122.427") < 1000 
AND CONTAINS("coffee") 
ORDER BY distance(latitude, longitude, "37.76", "-122.427") 
LIMIT 20