2015-12-24 130 views
6

什麼是指數PostgreSQL數據庫中的Solr的/ Elasticsearch數據庫不斷變化的數據的最佳方式?索引數據/ elasticsearch

我對AWS RDS一個Postgres數據庫,我想對它進行復雜的搜索。然而,我要查詢的數據會隨着寫入/更新量的不斷變化而不斷變化。所以,我不知道,應該怎樣有效和可靠地數據傳輸到Solr的/ elasticsearch。

感謝您的幫助

回答

2

Solr情況下,一般的方法是使用Data Import HandlerDIH的簡稱)。配置完整導入& delta-import sql正確,其中delta import導入數據庫中的數據,該數據庫自上次導入通過時間戳進行判斷(因此,您需要具有適當時間戳的設計模式)。

增量導入的定時,有2種樣式,其可單獨使用或組合:

  • 待辦事項增量導入用的定時器。 (例如每5分鐘)
  • 在數據庫中的每個更新後,做出增量導入的呼叫。

有關DIH的詳細信息,請參閱https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler

4

有人將此問題標記爲重複的風險,下面是在另一個StackOverflow線程中設置postgres-to-elasticsearch的鏈接。還有Atlassian的上是this blog post還談到了如何從PostgreSQL的獲取實時更新到ElasticSearch。

tl; dr羣體的Atlassian線程使用存儲的PGS過程將更新/插入的數據複製到登臺表,然後分別處理登臺表。這是一種適用於ES或Solr的好方法。不幸的是,除非你熟悉Clojure,否則這是一個自己動手的解決方案。