2

在我的 MySQL 中:

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

而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"
    }
}'

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

aa
bb
aa
bb
aa
aa
aa
bb
bb
bb

我认为结果是这样的:

aa
bb

请帮助我,感谢 gsc-leticia 帮助我格式化这个问题内容。

4

1 回答 1

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 文档

于 2013-01-31T08:50:33.730 回答