2010-03-15 86 views
1

我的查詢基本上是以下幾點:GQL請求BadArgument錯誤。如何解決我的問題?

entries=Entry.all().order("-votes").order("-date").filter("votes >", VOTE_FILTER).fetch(PAGE_SIZE+1, page* PAGE_SIZE) 

我想要抓住有投票得分上面的一些基準(VOTE_FILTER),最新的條目N個。谷歌目前說我不能過濾'投票',因爲我按'日期'排序。我沒有看到我可以按照我想要的方式做到這一點,所以我會很感激任何建議。

+1

的幾個問題/想法進行測試:你有沒有試圖改變方法調用的順序?或者使用相同的GQL查詢來代替?你的'index.yaml'中有相應的索引嗎?它在SDK中還是僅在部署版本中失敗? – balpha 2010-03-15 17:44:45

+0

@balpha,是的,我試過改變順序並使用GQL查詢。是的,index.yaml中有一個索引。我沒有部署它,但在SDK中失敗。 Google文檔表明它也會在部署的版本中失敗。 – awegawef 2010-03-16 21:31:32

回答

4

假設你的「投票過濾器」是一個固定的閾值,則需要一個屬性添加到您的模型,記錄,如果它是高於閾值或沒有,讓你做一個簡單的相等測試,以確定哪些記錄應包括在內。

+0

+1謝謝 - 我喜歡這種方法。 – msw 2010-03-15 22:12:35

0

是的,有Restrictions on Queries因爲這是GQL不是SQL。它看起來像你需要在代碼中使用Query Cursor並拒絕對votes <= VOTEFILTER條目。

Bigtable語義肯定比一個RDBM不同,我仍然在試圖總結我的周圍的頭,太。

相關問題