2013-09-27 45 views
0

當使用https://github.com/jprante/elasticsearch-river-jdbc時我注意到下面的curl語句第一次成功索引數據。但是,河流不能反覆輪詢數據庫以獲取更新。elasticsearch jdbc river polling ---從mysql重複加載數據

重申,當我運行以下代碼時,河流成功連接到MySQL,成功運行查詢,爲結果建立索引,但從不再運行查詢。

curl -XPUT '127.0.0.1:9200/_river/projects_river/_meta' -d '{ 
"type" : "jdbc", 
"index" : { 
    "index" : "test_projects", 
    "type" : "project", 
    "bulk_size" : 100, 
    "max_bulk_requests" : 1, 
    "autocommit": true 
    }, 
"jdbc" : { 
    "driver" : "com.mysql.jdbc.Driver", 
    "poll" : "1m", 
    "strategy" : "simple", 
    "url" : "jdbc:mysql://localhost:3306/test", 
    "user" : "root", 
    "sql" : "SELECT name, updated_at from projects p where p.updated_at > date_sub(now(),interval 1 minute)" 
    } 
}' 

尾礦日誌,我看到:

[2013-09-27 16:32:24482] [INFO] [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次運行,等待1m [2013-09-27 16:33:24,488] [INFO]> [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次運行,等待1m [2013-09-27 16 :34:24,494] [INFO]> [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次運行,等待1m

但索引保持空白。使用elasticsearch版本穩定版0.90.2在HEAD和mysql-connector-java-5.1.25-bin.jar中運行macbook pro,並在river pligns目錄中運行。

回答

0

我認爲如果您將策略值從「簡單」切換到「輪詢」,您可能會得到您正在尋找的內容 - 它已在jdbc上針對該版本的針對MS SQL的elasticsearch工作。

另外 - 您需要選擇一個字段作爲_id(選擇p​​rimarykey作爲_id),因爲這是在elasticsearch河中用於確定哪些記錄被添加/刪除/更新。

+0

接受你的答案,即使我沒有嘗試它 - 通過消化虛假和自動提交真正爲我工作。 – user1609682

相關問題