2016-05-09 3 views
3

私はProductに基づくインデックスを持ち、マッピングで宣言されたフィールドの1つはAttributesです。このフィールドは、キーと値の2つの値を含むため、ネストされた型です。私が持っている問題は、属性のコンテキストに応じて、値のデータ型は整数と文字列の間で変わる可能性があるということです。例えばElasticsearchのさまざまなデータ型のネストされたフィールドの集約

{"attributes":[{"key":"StrEx","value":"Red"},{"key":"IntEx","value":2}]} 

属性内のすべての将来のネストされた文書内の「価値」のすべてのインスタンスのデータ型は、最初に入力されたデータに基づいて決定されるようです。私は範囲のクエリを実行できるように整数/長いデータ型として格納できるようにする必要があります。

どのようなヘルプや別のアイデアをいただければ幸いです。

答えて

2

あなたはvalueフィールドに、このようなマッピングが必要になります。

"value": { 
     "type": "string", 
     "fields": { 
     "as_number": { 
      "type": "integer", 
      "ignore_malformed": true 
     } 
     } 
    } 

基本的には、あなたのフィールドはstringしかしあなたが数値フィールドとしてフォーマットを試みることができfieldsを使用しています。

rangeクエリを使用する場合は、value.as_number、それ以外の場合はvalueを使用します。

+0

あなたは美しい人です!どうもありがとうございます。 – Spencaroo

関連する問題