我正在使用 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):
id_ = 123
value = 11
client.index(index_name, body={'float_field': value}, id=id_)
r = client.get(index_name, id=id_)['_source']['float_field']
结果值是整数,而不是浮点数:
assert r == value # passes
assert isinstance(r, float) # AssertionError
所以float_field
到float
类型的映射似乎不起作用,我在这里做错了什么?
无论我在映射中设置什么,类型似乎都只能自动推断。