Лучший индекс для DynamoDB

У меня есть таблица под названием «сообщения», в которой хранятся онлайн-блоги и статьи. Структура данных различается в зависимости от типа сообщения. На данный момент их 3: новости, инструкции и видеоблог. Еще два могут быть добавлены в будущем.

Моя таблица имеет следующие атрибуты:

категория (HASH) отметка времени (RANGE)

Я хочу иметь возможность извлекать из таблицы только несколько полей, которые являются общими для всех сообщений (postId, title, postDate, author, category), и ограничивать набор записей до 10 записей на страницу всякий раз, когда поисковый запрос встречается в ЛЮБОМ из поля.

Я также хочу иметь возможность извлекать каждое поле, когда указан postId (postID не является ключевым полем, но он уникален).

Как лучше всего добиться этого с помощью DynamoDB?


person Keith Harris    schedule 09.03.2020    source источник


Ответы (1)


Я также хочу иметь возможность извлекать каждое поле, когда указан postId (postID не является ключевым полем, но он уникален).

Это легко сделать с помощью индекса postId, выбрав все проецируемые атрибуты.

Я хочу иметь возможность извлекать из таблицы только несколько полей, которые являются общими для всех сообщений (postId, title, postDate, author, category), и ограничивать набор записей до 10 записей на страницу всякий раз, когда поисковый запрос встречается в ЛЮБОМ из поля.

Это немного сложно, так как это скорее проблема поиска, наиболее подходящая, например, для ElasticSearch. Вы можете использовать оба этих решения, в зависимости от ваших запросов.

person Horatiu Jeflea    schedule 09.03.2020
comment
По пункту 2, как реализован эластичный поиск? Это отдельный сервис от AWS? - person Keith Harris; 09.03.2020