有人知道如何按距离搜索位置订购Facebook地点吗?请注意,我不想在我的客户端应用中订购结果。我希望Facebook服务器能够为我提供有序的结果以便于分页。我总是希望将后续查询中的位置附加到数组的末尾。
使用图形API查询似乎不可能,例如:
https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,-122.427&distance=1000& ....因为没有办法告诉Facebook订购结果。最近的地方可能是返回结果列表中的最后一个。
我一直在尝试使用FQL
复制上述查询但是有一个问题,即名称& Facebook位置表中的描述字段不可索引。 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
问题是,字段name
和description
在地方表中不可转发。这意味着并非所有结果都由FQL返回,因此有许多缺失结果。
答案 0 :(得分: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