Nó phụ thuộc vào trường hợp sử dụng của bạn. Một thực tế phổ biến là xử lý điều này trên lớp ứng dụng. Về cơ bản những gì bạn làm là sao chép các hành động của db này sang db khác. Vì vậy, ví dụ:nếu bạn lưu một mục nhập trong postgres, bạn cũng làm như vậy trongasticsearch.
Tuy nhiên, nếu bạn làm điều này, bạn sẽ phải có một hệ thống xếp hàng tại chỗ. Hàng đợi được tích hợp trên lớp ứng dụng của bạn, ví dụ:nếu lưu trong tìm kiếm đàn hồi không thành công thì bạn có thể thực hiện lại thao tác. Hơn nữa, trên hệ thống xếp hàng của bạn, bạn sẽ thực hiện cơ chế điều chỉnh để không lấn át tìm kiếm đàn hồi. Một cách tiếp cận khác sẽ là gửi các sự kiện đến một ứng dụng khác (ví dụ:logstash, v.v.), do đó, việc điều chỉnh và duy trì sẽ được xử lý bởi hệ thống đó chứ không phải ứng dụng của bạn.
Một cách tiếp cận khác sẽ là https://www.elastic.co/blog/ logstash-jdbc-input-plugin . Bạn sử dụng một hệ thống khác để "thăm dò" cơ sở dữ liệu của bạn và gửi các thay đổi đếnasticsearch. Trong trường hợp này, logstash là lý tưởng vì nó là một phần của ngăn xếp ELK và nó có sự tích hợp tuyệt vời. Cũng kiểm tra điều này https://www.elastic. co / guide / en / logstash / current / plugins-input-jdbc.html
Một cách tiếp cận khác là sử dụng THÔNG BÁO cơ chế của các postgres để gửi các sự kiện đến một số hàng đợi sẽ xử lý việc lưu các thay đổi trongasticsearch.