5

jprante の elasticsearch jdbc riverを使用して、elasticsearch で mysql レコードのインデックスを作成しようとしています。日付フィールドの値がインデックスで変更されていることに気付きました。

マッピング:

content_date:{
  "type":"date"
}

content_datemysql のレコードのフィールド ->2012-10-06 02:11:30

jdbc リバーを実行した後....

content_dateelasticsearch の同じレコードのフィールド ->2012-10-05T20:41:30Z

川:

curl -XPUT 'localhost:9200/_riv_index/_riv_type/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "driver" : "com.mysql.jdbc.Driver",
        "url" : "jdbc:mysql://localhost:3306/db",
        "user" : "user",
        "password" : "password",
        "sql" : "select * from table where id=2409",
        "poll" : "1d",
        "versioning" : false
    },
    "index" : {
        "index" : "myindex",
        "type" : "mytype"
    }
}'

日付形式の変更は許容されますが、日付値が変更されるのはなぜですか? リバーは、mysql レコードの日付に utc 時差を追加し、elasticsearch に保存しています。この時間変換を停止するにはどうすればよいですか?

4

2 に答える 2

0

Elasticsearch POV から、ドキュメントの内容は次のとおりです。

日付型は、JSON 文字列型にマップされる特別な型です。明示的に設定できる特定の形式に従います。すべての日付は UTC です。内部的には、日付は数値型 long にマップされ、string から long および long から string への解析ステージが追加されます。

変更できるかどうかはわかりません。

于 2012-10-19T08:33:57.163 に答える