Спасибо, Хонза!
Я предположил, что в конечном итоге ... чтобы расширить ваш ответ, вот как я сейчас вставляю / индексирую документы:
data = {
"_op_type": "index",
"_index" : "myIndex",
"_type" : "document",
'script' : {
'inline': 'if(ctx._source.pages.length < 1001){ ctx._source.pages.add(params.page);}',
'params' : {
"page" : "{}".format(item['page'])
}
}
}
Я использую поле скрипта в сочетании с «безболезненным» языком для проверки длины поля перед индексацией документа.
Обратите внимание, что в приведенном выше примере я использую вспомогательный модуль библиотеки Python Elasticsearch, поэтому вы видите поле "_op_type".