2013-09-27 35 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

相关问题