Elasticsearch 7.6.2 (デフォルト オプションで公式の docker イメージを実行) と py-elasticsearch 7.6.0 (バージョン >=7.6 <8 でインストール) を使用しています。
私はfloat
このようなフィールドでインデックスを作成しようとしています ( lib docs で説明されているように):
index_name = 'test_index'
body = {'mappings': {'properties': {'float_field': {'type': 'float'}}}}
client.create(index_name, body=body)
次に、型が機能しているかどうかをテストします (上記のインデックス作成中にマッピングで設定されたように int を float に変換するかどうかを確認するために、int にインデックスを付けようとします)。
id_ = 123
value = 11
client.index(index_name, body={'float_field': value}, id=id_)
r = client.get(index_name, id=id_)['_source']['float_field']
結果の値は float ではなく整数です。
assert r == value # passes
assert isinstance(r, float) # AssertionError
float_field
型へのマッピングがfloat
機能していないようですが、ここで何が間違っていますか?
マッピングで何を設定しても、タイプは自動的に推測されるだけのようです。