К сожалению, magi c не может решить ваши проблемы. Нет функции DynamoDB, которую вы пропустили. В самом деле, как вы сказали, чтобы сделать каждый из атрибутов доступным для эффективных запросов, требуется GSI, который будет стоить вам дополнительных денег, но это разумно. Действительно, как вы сказали, не существует эффективного способа поиска пересечения требований по двум различным атрибутам. И действительно, функция «ограничения» не совсем выполняет то, что вы хотите, и вам нужно будет имитировать размер вашей страницы в клиентском коде (запрашивая больше страниц, пока желаемое количество не будет получено), потенциально с неприемлемо высокой задержкой.
Похоже, что вам действительно нужна поисковая система . У них есть именно те функции, о которых вы просили. Вы по-прежнему будете платить за эти функции (индексирование отдельных столбцов по-прежнему занимает центральный процессор и дисковое пространство, пересечение нескольких поисков по атрибутам по-прежнему требует значительных усилий во время запроса), но поисковые системы предназначены именно для этих операций и выполняют их более эффективно. и с более низкой задержкой (что важно для интерактивного поиска, который составляет основу поисковых систем).