elasticsearch jdbc river polling ---反复从mysql加载数据

时间:2013-09-27 23:42:13

标签: plugins jdbc elasticsearch elasticsearch-plugin

使用https://github.com/jprante/elasticsearch-river-jdbc时,我注意到以下curl语句首次成功索引数据。但是,河流无法重复轮询数据库以进行更新。

重申一下,当我运行以下命令时,河流成功连接到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:24,482] [INFO] [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次运行,等待1米   [2013-09-27 16:33:24,488] [INFO]> [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次运行,等待1米   [2013-09-27 16:34:24,494] [INFO]> [org.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow]下次运行,等待1米

但索引保持空白。在一个macbook pro上运行,弹性搜索版本稳定0.90.2,HEAD和mysql-connector-java-5.1.25-bin.jar在河里的pligns目录。

1 个答案:

答案 0 :(得分:0)

我认为如果您将策略值从“简单”切换到“轮询”,您可能会得到您正在寻找的东西 - 它对我使用jdbc在该版本的弹性搜索中针对MS SQL。

此外 - 您需要选择一个字段作为_id(选择主键作为_id),因为它在elasticsearch河中用于确定添加/删除/更新的记录。