Массовое обновление без типа с использованием упругого поиска py - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь выполнить массовую вставку, используя эластичный поиск 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

1 Ответ

1 голос
/ 03 июня 2019

Каждый индекс имеет один тип отображения в Elasticsearch 6.x+Elasticsearch 7.x+ тип удален.В версии 2.x - 5.6 вы могли бы использовать более одного сопоставления.Предполагая, что вы используете версию 6.x, вам нужно иметь тип документов в индексе.

...