Я пытаюсь смоделировать сообщение следующим образом:
class Post:
DOC_TYPE = "post"
def __init__(self, name):
self.name = name
self.score_at = {}
self.id = int(hashlib.sha1(name.encode("utf-8")).hexdigest(), 16) % (10 ** 8)
Мой score
- это dict
, который отображается от string
до list
из ints
Я хочу в основном смоделировать поведение defaultdict(list)
Я ищу несколько примеров того, как это сделать с помощью скрипта painless
(language), в контексте обновления этого поста в эластичномпоиск.
В частности:
(1) Как я могу изменить его с {}
, скажем, на {"week1":[1,2] }
(2) Как я могу изменить его с {"week1": [1,2]}
to {week1":[1,2,3]}
Мой код Python, в конце концов, будет выглядеть следующим образом
update_dict = {
"script": {
"source": """"
// the code to update score_at
"""
,
"lang": "painless",
}
}
client.update(id=post_id, body=update_dict)
Я бы хотел несколько указателей в правильном направлении.Я посмотрел на документы API для painless
, но мне не ясно, как связать все эти компоненты вместе.