0

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機能していないようですが、ここで何が間違っていますか?

マッピングで何を設定しても、タイプは自動的に推測されるだけのようです。

4

1 に答える 1