2011-11-17 136 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