Java-API AWS CloudSearch

Мы используем EC2 и RDS (MySQL) в облаке AWS. Планируется использовать Amazon CloudSearch для полнотекстового поиска. Похоже, нам нужно отправлять данные в CloudSearch всякий раз, когда мы добавляем новую строку в MySQL. Это своего рода операция 2 для синхронизации CloudSearch с RDS. Одна для добавления строки в RDS и вторая операция для добавления тех же данных (разумеется, в другом формате) в CloudSearch. Пожалуйста, предложите мне, если есть какой-либо другой хороший подход.

Я ищу хорошие материалы и рабочий пример для AWS java API, который нужно добавить, документ для облачного поиска и обновления/удаления документа при каждом обновлении RDS.

Спасибо, Баскар.С


person user1578872    schedule 15.04.2014    source источник
comment
вы нашли хорошее решение для вашей проблемы?   -  person Reza    schedule 27.08.2015


Ответы (2)


Нихил на полпути. В коде, где ваши данные CRUD, вы добавляете аналогичные вызовы к cloudsearch, но оба этих оператора должны быть заключены в транзакционный контекст. Это в основном гарантирует, что если один из них выйдет из строя, они оба выйдут из строя. Без этого вы никогда не сможете гарантировать синхронизацию.

Такие фреймворки, как Spring и Rails, предоставляют эту функциональность, но вы не указали, что используете.

person Sean Roy    schedule 30.06.2015

Хотя нет готовых инструментов для обеспечения постоянной синхронизации между вашей базой данных RDS и вашим индексом cloudsearch, проблема обычно решается путем добавления собственного кода в ваши функции обновления/удаления/создания. Я использовал этот подход в своем веб-приложении на основе ruby.

Предположим, у вас есть класс, который обрабатывает добавление нового документа в ваш индекс, обновление документа и удаление документа. Ваш подход должен быть следующим:

  1. Когда новая строка будет успешно создана, вызовите функцию, которая также создает новый документ. Это автоматически индексируется cloudsearch по завершении.

  2. Когда вы обновляете строку и вносите изменения в поле, которое также присутствует в вашем индексе cloudsearch, вызовите функцию, которая также обновляет соответствующий документ.

  3. Аналогично для удаления строки вызовите функцию, которая также удалит документ из индекса.

person Nikhil    schedule 20.04.2014
comment
Все хорошо, что происходит, когда он отлично добавляется в БД, но затем не добавляется в cloudsearch? - person gremwell; 10.06.2015
comment
Вы можете обернуть логику в ту же функцию/метод. Отмените изменение БД, если обновление cloudsearch не работает. - person Nikhil; 13.06.2015