2015-09-10 122 views
0

我的內容(來自數據庫)最初是通過將數據庫記錄數據存儲到類中的完整索引讀入elasticsearch搜索索引,然後將每個類實例添加到已創建的索引中。Elasticsearch重新索引

我的問題是如何將我做一個增量索引...

我想有一份工作運行的時間和每一個設定量已經在那個時候,我想了更新它找到任何記錄在數據庫他們重建索引...

我不能只使用

client.Index(爲myContent)

作爲完整的索引使用,因爲這將這個記錄的另一個副本添加到索引...

任何人都可以告訴我如何更新索引中已選定數量的記錄,他們校正了對應的修改後的db記錄?

感謝

回答

0

有沒有神奇的在這裏,你將需要保持某種時間戳字段每當插入或發生變更該行被更新。還要確保主鍵是作爲文檔ID生成的,這樣更新後的文檔就會被覆蓋並且不會被創建爲重複文件。我想推薦this JDBC importer JörgPrante。

在自述中,他使用以下說明增量用法 -

{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "url" : "jdbc:mysql://localhost:3306/test", 
     "user" : "", 
     "password" : "", 
     "sql" : [ 
      { 
       "statement" : "select * from \"products\" where \"mytimestamp\" > ?", 
       "parameter" : [ "$metrics.lastexecutionstart" ] 
      } 
     ], 
     "index" : "my_jdbc_index", 
     "type" : "my_jdbc_type" 
    } 
} 
+0

好,謝謝即時通訊使用C#Windows窗體解決方案...即時認識到存儲過程與檢查更改行,然後返回在此設置期間內已更新的一行或多行記錄。 – user2895142

+0

你是指在我的課程poco中使elasticsearch _id與我自己指定的ID相同嗎? – user2895142