Elasticsearch插入重复数据?

时间:2015-05-20 20:25:38

标签: java mysql jdbc elasticsearch

当我使用此JDBC

我希望它能定期获取以从数据库中获取最新的更改,但从日志看起来它会在每次迭代时复制所有数据,而不仅仅是最近的更改。虽然当我使用REST API进行搜索时,我看不到任何重复项。这是正常的吗?

日志每分钟都会显示一次(rows每次增加~3000):

  

[INFO] [river.jdbc.RiverMetrics]管道org.xbib.elasticsearch.plugin.jdbc.RiverPipeline@273cf2ca完成:river jdbc / items metrics:24745行,61.24885239965816 mean,(56.52859885706843 11.685682148116433 3.916887460538012),摄取指标:经过0秒,291,25 KB字节,平均12.0字节,1,061 MB / s   [2015-05-20 22:22:15,607] [INFO] [cluster.routing.allocation.decider] [Gideon]低于[6TQNFDctRSaYVFyKjQahJA] [Gideon]的磁盘水印[15%]:26.6gb [11.4%] ,副本将不会分配给此节点

这是我用来启动JDBC的方法

curl -XPUT 'localhost:9200/_river/items/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/mydb",
        "user" : "root",
        "password" : "123",
        "sql" : "select items.id as _id from items",
        "index": "items",
        "type": "item",
        "schedule" : "0 0-59 0-23 ? * *"
    }
}'

这是正常行为吗?

1 个答案:

答案 0 :(得分:0)

是的,这是正常的。 ES总是会重新索引从sql查询返回的所有行。

您可以查看文档的_version字段,看看每次执行河流后它都会增加。

事实上,你应该避免使用河流,因为它们是deprecated