Я иду по Курсу глубокого погружения DynamoDB Pluralsight с использованием консоли AWS. Я создал таблицу «сообщений» со следующими элементами:
При создании таблицы первичный ключ настраивался с помощью ключа сортировки:
Primary partition key: | userid (Number)
Primary sort key: | timestamp (Number)
Также был добавлен локальный вторичный индекс (LSI) с атрибутом рейтинга в качестве ключа сортировки:
Partition key: | userid (Number)
Sort Key: | rating (Number)
После создания и добавления некоторых записей глобальный вторичный индекс (GSI) был добавлен с использованием атрибутов topicid & rating:
Partition key: | topicid (Number)
Sort Key: | rating (Number)
При попытке запроса с использованием GSI и сортировки в порядке убывания (по ключу сортировки по рейтингу) элементы расположены не по порядку:
Полагаю, я добавил некоторые элементы до создания GSI, а некоторые - после. В этот момент все предметы находились в таблице не менее 30 минут.
В соответствии с руководством, элементы должны быть отсортированы в порядке поля сортировки (рейтинга). Кажется, я упускаю что-то очевидное.
Обновление:
Интерфейс в консоли изменился с момента обучения. В этом руководстве предыдущая версия результатов не имеет индикаторов сортировки рядом с именами атрибутов, как показано здесь:
Теперь каждый атрибут в области результатов показывает индикатор сортировки, как показано ранее, который по умолчанию соответствует первичному ключу раздела.
Указание сортировки в запросе теперь, кажется, действует как вторичный параметр сортировки после сортировки, выбранной в заголовке результатов.
Дополнительный вопрос: есть ли в консоли AWS способ использовать результаты для сортировки запроса вместо того, который последний раз выбирался в заголовке области результатов?
В противном случае вы получите следующий неинтуитивный результат при нажатии «Начать поиск», если ранее был нажат заголовок rating
: