0

Elasticsearch に 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」セクションではなく「index」セクションにある必要があります。

于 2013-02-04T23:18:40.790 に答える