2016-11-01 13 views
0

elasticsearch 5.0にインデックスを作成しました。ここにはMySQL dbのデータが含まれています。私のテーブルにはstringというフィールドがあります。これはESにdoubleとして必要です。私はPUT使用して、適切なフィールドのインデックスを作成したとき、私はマッピングを添加してなかったので、何10進数の後の数字がゼロの場合、double値として返されません。

:私はこれをした後、小数点以下の数字が含まれている値を

{ 
    "mappings": { 
    "my_type": { 
     "properties": {  
     "chargeamount": { 
      "type": "double" 
     } 
     } 
    } 
    } 
} 

(すなわち:23.23)を値をdoubleとして正しく返しますが、小数点以下の零点を持つ数字(つまり:23.00)は文字列として返します(つまり:2300)。

EDIT: これらは私がしたステップである。

  1. Iが最初 体として上記マッピングとPUT要求 (http://hostmachine:9402/indexname)を介してインデックスを作成しました。

  2. 次に、 logstashを使用してインデックス(私のMySQLテーブルから)にプッシュしています。必要に応じてlogstash confを提供することができました。

  3. データがインデックスにアップロードされると、結果が2倍の値を示すかどうかを確認するためにクエリを実行しようとしました。 POST要求(http://hostmachine:9402/indexname/_search?と体を次のように

    { 
         "size" : 0, 
         "query":{ 
          "query_string":{ 
          "query":"myquery" 
          } 
         }, 
         "aggs":{ 
          "total":{ 
          "terms":{ 
           "field":"userid" 
          }, 
          "aggs":{ 
           "total":{ 
            "sum":{ 
             "script":{ 
             "lang": "painless", 
             "inline" : "doc['chargeamount'].value" 
             } 
            } 
           } 
          } 
          } 
         } 
        } 
    

を、結果はそれが267472.00してきたはずです以下のスナップショット、のように次のようになります。

enter image description here

どこが間違っていますか?どんな助けもありがたいです。

+0

あなたがインデックスされている文書の例を示すことができ、かつ実行しているコマンド – Val

+0

@Valの意味での文書の例? 私は、このマッピング( 'http:// hostmachine:9402/indexname')putリクエストを使用して、上記のマッピングを' body'として作成しました。インデックスを作成した後、私は 'logstash'を使ってインデックスにデータをアップロードしようとしています。 – Kulasangar

+2

簡単に言えば、実行したすべてのコマンドを表示して、表示されている問題と同じ問題を再現することができますか? – Val

答えて

1

あなたのインデックス作成クエリでマッピングタイプは正確にあなたがlogstashの設定、すなわちmessage_logsに持ってdocument_typeと同じであることを確認する必要があります。

PUT response_summary6 
{ 
    "mappings": { 
    "message_logs": {   <--- change this 
     "properties": { 
     "userid": { 
      "type": "text", 
      "fielddata": true 
     }, 
     "responsecode": { 
      "type": "integer" 
     }, 
     "chargeamount": { 
      "type": "double" 
     } 
     } 
    } 
    } 
} 
関連する問題