0

我正在使用弹性搜索的 jdbc 河来索引 mysql 表数据。

我的河:

 curl -XPUT 'localhost:9200/_river/river_mention_reports/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://localhost:3306/ESTest1_development",
        "user" : "root",
        "password" : "password",
        "sql" : "select * from table where creation_time >= (NOW() - INTERVAL 2 MINUTE)",
        "poll" : "2m",
        "versioning" : false
    },
    "index" : {
        "index" : "monitoring",
        "type" : "mention_reports"
    }
}'

我在河中指定的 SQL 查询是:

select * from table where creation_time >= (NOW() - INTERVAL 2 MINUTE)

现在的问题是,每次轮询后的河流都会删除在查询中指定的时间范围(当前减去 2 分钟)之外索引的数据,而不是向索引中添加新数据。我指定时间范围的原因是因为我不希望河流一次又一次地重新索引整个数据集。

4

1 回答 1

0

您需要在您的河流配置的“jdbc”部分中指定“digesting”:false(默认为true),现在您有“versioning”:false。顺便说一句,无论如何,“版本控制”默认为 false,实际上应该在“索引”部分,而不是“jdbc”部分。

于 2013-02-04T23:18:40.790 回答