我正在尝试使用弹性搜索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
设置为无时的错误:
elasticsearch.exceptions.RequestError: RequestError(400, 'action_request_validation_exception', 'Validation Failed: 1: type is missing;
这是我将_type
设置为"时遇到的错误:
java.lang.IllegalArgumentException: name cannot be empty string
每个索引在 Elasticsearch 6.x+
中都有一个映射类型。在Elasticsearch 7.x+
中删除类型。在版本 2.x - 5.6
中,您可以使用多个映射。假设您使用的是版本 6.x
,您需要在索引中包含文档类型。