Подсчет результатов в GQL-запросе Google App Engine - PullRequest
3 голосов
/ 15 февраля 2011

Я пытаюсь создать поисковую систему в Google App Engine и хочу отобразить количество результатов, полученных по этому поисковому запросу. Я использую fetch () для отображения нескольких результатов одновременно, но не знаю, как отобразить количество результатов, полученных в результате поиска. Функция count () имеет предел только 1000, а мои результаты могут превышать даже 10 000 000. Итак, если кто-то знает, как это сделать, пожалуйста, предложите мне .........

Ответы [ 2 ]

7 голосов
/ 15 февраля 2011

Как уже говорили другие, count() не масштабируется эффективно.
Чтобы получить более 1000 объектов, несмотря на то, что написано в документации, вы должны указать верхний предел:

your_model.all().count(100000000)
0 голосов
/ 15 февраля 2011
Функция подсчета

не имеет ограничений.Это описание:

count (limit): Возвращает количество результатов, полученных этим запросом.count () несколько быстрее, чем извлечение всех данных с постоянным коэффициентом, но время выполнения все равно увеличивается с размером набора результатов.Лучше всего использовать count () только в тех случаях, когда ожидается, что количество будет небольшим, или указать ограничение. count () не имеет максимального ограничения.Если вы не укажете лимит, хранилище данных продолжит отсчет до тех пор, пока не закончится отсчет или не истечет время ожидания. С: GQL

Итак, вы можете использовать count ()

РЕДАКТИРОВАТЬ: Вы можете сделать это, начиная с версии 1.3.6 (выпущено 17 августа 2010 г.).

Ознакомьтесь с changelog.

Также это должно быть полезно: Как получить более 1000?

Если вы все еще боретесь с получением не более 1000, чем пытаться выполнить итерациюзапрос извлекает 1000 за раз и устанавливает смещение на следующее 1000, как объяснено в предыдущей ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...