Вы не сможете использовать вторичные индексы для создания (разумного) обобщенного поиска по подстроке.
Есть много способов решить вашу проблему.Здесь я представляю некоторые из них, и это ни в коем случае не является исчерпывающим.
DynamoDB -> CloudSearch
CloudSearch может предоставить общие функции поиска для ваших данных.По сути, вы можете подключить лямбда-функцию к потоку DynamoDB из вашей таблицы.Эта лямбда-функция может поддерживать ваш домен CloudSearch в актуальном состоянии. Здесь - обзор этого процесса.
CloudSearch
Вы можете отказаться от DynamoDB и сохранить эти данные в CloudSearch.Это устраняет необходимость в лямбда-функции и означает, что ваши данные хранятся только в одном месте.Тем не менее, вы должны допустить более высокое время согласованности, потому что CloudSearch не имеет строго согласованных чтений, таких как DynamoDB.
RDS
Вы можете просто использовать какую-либо базу данных SQL.Большинство из них поддерживают полнотекстовый поиск.Вы даже можете использовать AWS Aurora Serverless, если не хотите управлять экземплярами базы данных.