У меня есть следующая модель в приложении GAE.
class User
school_name = db.StringProperty(Indexed=True)
country = db.StringProperty(Indexed=True)
city = db.StringProperty(Indexed=True)
sex = db.StringProperty(Indexed=True)
profession = db.StringProperty(Indexed=True)
joined_date = db.DateTimeProperty(Indexed=True)
И я хочу отфильтровать пользователей по комбинациям этих полей. Результат фильтра сначала должен показать пользователя, который недавно присоединился. Так что это означает, что любой запрос завершается с помощью операции заказа, я полагаю. вот так:
User.all().filter('country =','US').filter('profession =','SE').order('-joined_date')
User.all().filter('school_name =','AAA').filter('profession =','SE').order('-joined_date')
....
User.all().filter('sex =','Female').filter('profession =','HR').order('-joined_date')
Все эти комбинации полей будут C (5,1) + C (5,2) + ... + C (5,5) = 31.
Мой вопрос заключается в том, чтобы реализовать его, нужно ли создавать индексы для всех этих случаев (31) в Google AppEngine. Или вы можете предложить другой способ его реализации?
Примечание: C (n, k) - комбинационная формула, подробнее см. http://en.wikipedia.org/wiki/Combination
Заранее спасибо!