2011-04-28 51 views
4

的可索引列我有一個問題需要解決。
我想查詢所有的事件,我想查找特定的字符串。
如何使用FQL查詢所有事件而不使用標記爲*

的FQL碼是這樣的:

SELECT EID,名稱,位置,START_TIME,END_TIME受到事件WHERE
strpos(低級(位置), '測試')> = 0

當我使用這個FQL代碼時,它總是出錯。
錯誤信息是「你的話沒有索引的。WHERE子句必須包含一個可索引列。這樣的列標有從http://developers.facebook.com/docs/reference/fql鏈接表中*」

請,給我的意見你的觀點?謝謝你:)

回答

6

好了,該錯誤信息是明確的:

你的說法是不可轉位。 WHERE子句必須包含 可轉位列。這樣的柱 標有表中*鏈接 從 http://developers.facebook.com/docs/reference/fql

所以,簡單地你的做法是行不通的。

編輯:
爲了進一步解釋爲什麼這是可能:

Facebook的涉及「在比9億的對象,人們用(頁,羣體性事件和社區頁面)互動」。 reference

因此,基本上給你(所有應用程序開發人員)搜索的能力全部頁面,事件,組......等肯定會使系統失效。這就是爲什麼仔細選擇這些「可指數」字段的原因。例如,如果你想通過「位置」來搜索事件,那麼這些事件應該「以某種方式」與你的應用程序相關。就像你的應用程序,例如創建,你應該在什麼地方存放它們的ID,這樣像這樣的工作:

SELECT eid, name, location, start_time, end_time FROM event WHERE 
strpos(lower(location),'test') >=0 AND eid IN (ids_from_your_db) 
+0

是〜我知道,如果我想找到包含特定字符串和索引UID的一些事件是不穩定的。我想找到一個解決方案來解決這個問題。 – solar 2011-04-29 00:58:48

+0

@solar:更新了我的答案。 – ifaour 2011-04-29 07:18:17

相關問題