我在應用程序引擎的實體,我查詢爲:缺失索引
foo = Foo.all().filter('bar =', baz).get()
#baz is unicode, bar is a StringProperty
#Foo inherits from db.Model
這適用於大多數的實體,但巴茲的一些價值,沒有返回單位,即使實體當然存在,可以在https://console.cloud.google.com/datastore/entities/驗證,原因是對於,特定實體沒有索引值,它的值爲bar
,正如該網頁的「索引」列中缺少複選標記所證明的那樣。
的docs狀態
指標進行簡單的查詢,如在一個單一屬性查詢,自動創建
所以我本來預計該類型的所有實體將有該屬性的索引,但顯然這是不正確的。問題:
Q1:創建索引時,是否將其添加到第一次使用該索引運行查詢之前放置的實體? (或索引第一次創建該類型的任何實體被放?)
Q2:如果沒有,什麼樣的變化對實體(如果有的話)會導致被添加到該屬性的索引? (我試過更改酒吧以外的其他房產,並且沒有導致實體被添加)
Q3:會明確列出index.yaml
中的索引更改此行爲嗎?
問題4:有沒有一種方法可以通過編程方式確定實體是否在特定屬性上有索引?
Q5 :(獎金)上面有沒有谷歌文檔?
謝謝
對於這個特定的實體,它是9個字符,utf-8。我認爲這是18個字節。 – tom