Я зіткнувся з тією ж проблемою, але я знайшов щось на сторінках двигуна програми Google:
Порада: Фільтри запитів не мають явного способу зіставлення лише частини значення рядка, але ви можете підробити збіг префіксів за допомогою фільтрів нерівності:
db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2",
"abc",
u"abc" + u"\ufffd")
Це відповідає кожній суті MyModel з підтримкою рядкового властивості, що починається з символів abc. Рядок unicode u "\ ufffd" являє собою найбільший можливий символ Unicode. Коли значення властивостей сортуються за індексом, значення, що потрапляють у цей діапазон, - це всі значення, що починаються із заданого префікса.
http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html
можливо, це могло б зробити трюк;)