2017-08-21 4 views
0

ドキュメントにインデックスを付けるために次のマッピングがありますが、結果は数値データ型の異なるデータ型として返されますが、テキストマッピングでなければなりません。elasticsearchは入力を考慮してデータ型を変更しますか

Put my_index 
    { 
    "mappings": { 
      "id" : 
     { 
      "type": "text" 
     } 
     } 
    } 

出力

"id":123123123123 

であるのに対し、それは

"id":"123123123123" 

答えて

0

元のインデックス要求のデータが整数ではない文字列が含まれていた場合にこの問題が発生しなければなりません。値は文字列として反転インデックスに格納されます(フィールドに指定されているアナライザを適用した後、この場合は "text"のデフォルトアナライザです)が、返されるドキュメントソースはまさにその値ですあなたがそれを索引付けしたときに受け取ったものです。

これは、インデックス要求を行うコード(インデックス前に文字列にキャスト)または取り込みノード(https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html)を使用してプロセッサ(https://www.elastic.co/guide/en/elasticsearch/reference/current/convert-processor.html)を変換することで解決できます。

また、idsに「テキスト」タイプを使用することはお勧めできません。おそらく、「キーワード」(分析されていない)を使用することを意図していたと思います。

関連する問題