我正在尝试使用弹性搜索py进行批量插入,但是我不想指定类型,但是不允许我为类型的值指定None或“”。我该如何解决?
bulk_data = []
this_merchant_product = {'field1': 'value1'}
op_dict = {
"index": {
"_index": "product",
"_type": None,
"_id": str(this_merchant_product_id)
}
}
bulk_data.append(op_dict)
bulk_data.append(this_merchant_product)
es = Elasticsearch()
res = es.bulk(index='product', body=bulk_data)
我也尝试将_type
设置为“”,但这也不起作用。
这些是错误消息。
当我将_type
设置为None时,这是错误:
elasticsearch.exceptions.RequestError: RequestError(400, 'action_request_validation_exception', 'Validation Failed: 1: type is missing;
这是将_type
设置为“”时遇到的错误:
java.lang.IllegalArgumentException: name cannot be empty string
答案 0 :(得分:1)
每个索引在Elasticsearch 6.x+
中具有一种映射类型。在Elasticsearch 7.x+
中,类型被删除。在版本2.x - 5.6
中,您可以使用一个以上的映射。假设您使用的是6.x
版,则需要在索引中添加文档类型。