Поиск данных в DynamoDB или использование службы поиска - PullRequest
0 голосов
/ 02 марта 2019

Я хотел бы знать плюсы и минусы попыток поиска данных (в основном полнотекстовый поиск по ограниченному набору полей).

Мои данные в настоящее время находятся в DynamoDB, и я понимаю, что это не такхорошо подходит для полнотекстового поиска.Есть ли способы сделать полнотекстовый поиск в DynamoDB?Каковы плюсы и минусы этого?

Я также могу использовать поисковый кластер (например, ElasticSearch).Есть ли причины, по которым вы бы не пошли с поисковым кластером?

Существуют ли другие способы полнотекстового поиска?Другие решения?

1 Ответ

0 голосов
/ 02 марта 2019

Dynamodb лучше всего подходит для значения ключа Insert and Retrieval.

Он не поддерживает функцию поиска, если вы пытаетесь выполнить сканирование с некоторым условием, которое будет O (n), и это будет очень дорого, так как вы потребляете много емкости для чтения.

Теперь перейдем к опциям

  1. Если в качестве варианта использования используется не полнотекстовый поиск, а только совпадение значения ключа, вы можете попытаться придумать ключ композитных данных , но онбудет иметь недостатки, такие как

    a.Не может изменить схему впоследствии и может потребовать огромных усилий, если вам нужно искать в новом поле.

    b.Разработка таких ключей довольно сложна, учитывая, что несколько клавиш всегда будут горячими и могут привести к горячему разделу.

  2. Идеальным решением является использование упругого поиска или индексации solr.У вас может быть лямбда-функция, слушающая поток DynamodB, выполняющая преобразование и помещающая данные вasticsearch.Но он будет иметь ограничения, такие как

    a.Elasticsearch кластер стоит дорого .

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