使用弹性搜索 py 进行无类型批量更新

Bulk updating without type using elastic search py

我正在尝试使用弹性搜索 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

每个索引在 Elasticsearch 6.x+ 中有一种映射类型。在 Elasticsearch 7.x+ 中,类型被删除。在版本 2.x - 5.6 中,您可以使用多个映射。假设您使用的版本 6.x,您需要在索引中包含文档类型。