在我的MySQL中:
mysql> select * from cc;
+----+------+
| id | name |
+----+------+
| 1 | aa |
| 2 | bb |
+----+------+
2 rows in set (0.00 sec)
和elasticsearch jdbc river是:
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"
}
}'
但是,我不明白弹性搜索索引数据的结果是:
aa
bb
aa
bb
aa
aa
aa
bb
bb
bb
我认为结果是这样的:
aa
bb
请帮帮我,谢谢gsc-leticia帮我格式化这个问题内容。
答案 0 :(得分: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"
}
}'
有关详细信息,请参阅JDBC River documentation。