2011-11-17 10 views
14

क्या किसी को पता है कि खोज स्थान से दूरी से फेसबुक स्थानों को कैसे ऑर्डर करना है? ध्यान दें कि मैं अपने क्लाइंट ऐप में परिणाम ऑर्डर नहीं करना चाहता हूं। मैं चाहता हूं कि फेसबुक सर्वर मुझे पेजिनेशन की सुविधा के लिए आदेशित परिणाम प्रदान करे। मैं हमेशा अपने प्रश्नों के अंत तक बाद के प्रश्नों से स्थानों को जोड़ना चाहता हूं।फेसबुक स्थान: दूरी के परिणाम

इस तरह के रूप में ग्राफ एपीआई क्वेरी का उपयोग संभव प्रतीत नहीं होता:

https://graph.facebook.com/search?q=coffee&type=place&center=37.76,-122.427&distance=1000& .... कोई रास्ता नहीं फेसबुक बताने के लिए परिणाम ऑर्डर करने के लिए है क्योंकि वहाँ। निकटतम स्थान लौटाए गए परिणामों की सूची में अंतिम हो सकता है।

मैं FQL का उपयोग कर उपर्युक्त क्वेरी को दोहराने की कोशिश कर रहा हूं लेकिन इसमें समस्या है कि & नाम स्थान फ़ील्ड फेसबुक प्लेस तालिका में अनुक्रमिक नहीं हैं। 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 जगह तालिका में इंडेक्स करने योग्य नहीं हैं। इसका मतलब यह है कि सभी परिणाम एफक्यूएल द्वारा वापस नहीं किए जाते हैं, कई गायब परिणाम हैं।

क्या कोई इसे करने का तरीका जानता है?

उत्तर

12

ऐसा लगता है कि यह इस FQL का उपयोग करना संभव है। contains फ़ंक्शन q= ग्राफ़ एपीआई पैरा के समान काम करता प्रतीत होता है। 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 
का उपयोग करके आपका उदाहरण यहां दिया गया है
संबंधित मुद्दे