关于ElasticSearch jdbc river

big*_*cpp 2 elasticsearch elasticsearch-jdbc-river

在我的MySQL中:

mysql> select * from cc;
+----+------+
| id | name |
+----+------+
|  1 | aa   |
|  2 | bb   |
+----+------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

和elasticsearch jdbc河是:

curl -XPUT 'localhost:9201/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://localhost:3301/test",
        "user" : "root",
        "password" : "root",
    "poll" : "10s",
    "strategy" : "simple",
        "sql" : "select * from cc"
    }
}'
Run Code Online (Sandbox Code Playgroud)

但是,我不明白弹性搜索索引数据为什么结果是:

aa
bb
aa
bb
aa
aa
aa
bb
bb
bb
Run Code Online (Sandbox Code Playgroud)

我认为这样的结果:

aa
bb
Run Code Online (Sandbox Code Playgroud)

请帮帮我,谢谢gsc-leticia帮我格式化这个问题的内容.

dad*_*net 15

你没有定义一个_id所以河流每分钟都会添加你的文件.

您应该使用以下内容定义您的河流:

curl -XPUT 'localhost:9201/_river/my_jdbc_river/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://localhost:3301/test",
        "user" : "root",
        "password" : "root",
    "poll" : "10s",
    "strategy" : "simple",
        "sql" : "select id as _id, name from cc"
    }
}'
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅JDBC River文档