这似乎不可能使用图形API查询,例如:
https: //graph.facebook/search?q=coffee&type=place¢er=37.76,-122.427&distance=1000& ....因为没有办法告诉Facebook订购结果。最近的地方可能是返回结果列表中的最后一个。
我一直在尝试使用 FQL 但有一个问题,名称& Facebook位置表中的描述字段不可索引。 FQL如:
SELECT page_id,name,display_subtext,description, distance(纬度,经度,37.76,-122.427),checkin_count FROM place WHERE((distance(纬度,经度,37.76,-122.427)< 25000 ) AND(strpos(lower(name),coffee)> = 0 OR strpos(lower(description),coffee)> = 0)) ORDER BY距离(纬度,经度,37.76,-122.427)ASC LIMIT 20 OFFSET 0这个问题是,地址表中的名称和描述不可索引。这意味着并不是所有的结果都由FQL返回,有很多缺失的结果。
有没有人知道这样做?
解决方案似乎可以使用这个FQL。 包含函数似乎与 q = Graph API参数相同。这是你的例子,使用包含
SELECT page_id,名称,描述,纬度,经度,checkin_count,距离(纬度,经度,37.76,-122.427) FROM place WHERE distance(纬度,经度,37.76, - 122.427)< 1000 AND CONTAINS(coffee) ORDER BY距离(纬度,经度,37.76,-122.427) LIMIT 20
Does anyone know how to order Facebook places by distance from a search location? Note that I don't want to order results in my client app. I want the Facebook server to provide me with ordered results to facilitate pagination. I always want to append places from subsequent queries to the end of my array.
This does not seem possible using the graph API query such as:
graph.facebook/search?q=coffee&type=place¢er=37.76,-122.427&distance=1000&.... because there is no way to tell Facebook to order the results. The nearest place may be last in the list of returned results.
I have been trying to replicate the above query using FQL but have a problem in that the name & description fields in the Facebook place table are not indexable. FQL such as:
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 0Problem with this is that the fields name and description are not indexable in the place table. This means that not all the results are returned by the FQL, there are many missing results.
Does anyone know a way to do this?
解决方案It seems like it's possible using this FQL. The contains function seems to work the same as the q= Graph API param. Here's your example using 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
更多推荐
Facebook的地方:按距离排序结果
发布评论