ElasticSearch jdbc河

时间:2014-08-28 08:44:25

标签: elasticsearch kibana elasticsearch-jdbc-river elasticsearch-plugin

我正在尝试使用jdbc河将数据输入弹性搜索,但这条河并没有获得所有数据。我在MySQL表中有450000条记录,但在ES中我只获得了大约230000条记录。

这是我的ES河流设置:

 curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/test",
        "user" : "test",
        "password" : "test",
        "sql" : "select * from test" },
        "index":{
        "index" : "test",
        "bulk_size":600,
        "max_bulk_requests":10,
        "bulk_timeout":"5s",
        "autocommit":"true"  
        }
}'

我查看了Elastic Search文档,但我找不到解决方案。 我使用的是river-jdbc-1.1.0.2版本。

1 个答案:

答案 0 :(得分:0)

您更新时需要索引450000。并且您的脚本具有以下参数

    "bulk_size":600,
    "max_bulk_requests":10,
    "bulk_timeout":"5s"

删除bulk_timeout 5秒并减小批量大小和max_bulk_request。由于您要将450000文档编入索引以弹性搜索某些缺少这些参数的数据。

假设您没有提及上述参数,即使我们错过了记录。 因此,以下是使用river获取数据以控制es河流请求索引数据的最佳参数。

    "bulk_size":160,
    "max_bulk_requests":5,

以前我遇到过这个问题。我在我的河流剧本中使用了上面的参数解决了。如果你应用了上面的参数,它肯定会起作用。这一次。

希望它有所帮助!