关于ElasticSearch jdbc river

时间:2013-01-31 05:52:35

标签: elasticsearch elasticsearch-jdbc-river

在我的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帮我格式化这个问题内容。

1 个答案:

答案 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