Преобразование запроса elasticsearch в запрос elasticsearch-dsl в python

я попытался преобразовать этот запрос elasticsearch в запрос elasticsearch-dsl, но не получил того же результата. Я использую elasticsearch версии 5.X также для elasticsearch-dsl

здесь запрос elasticsearch :

 qry = {
            "_source": [
                "accurate_call_duration",
                "call_duration",
                "call_duration"
            ],
            "query": {
                "bool": {
                    "should": [
                        {
                            "has_child": {
                                "type": "outgoing",
                                "query": {
                                    "match_all": {}
                                },
                                "inner_hits": {
                                    "size": 5000,
                                    "_source": [
                                        "accurate_call_duration",
                                        "accurate_ringing_duration",
                                        "anonymous_call"
                                    ]
                                }
                            }
                        }
                    ],
                    "must": [
                        {
                            "term": {
                                "client": 1212,
                            }
                        },
                        {
                            "range": {
                                "created_time": {
                                    "gte": date_from,
                                    "lte": date_to
                                }
                            }
                        },
                        {
                            "term": {
                                "type": "incoming"
                            }
                        }
                    ]
                }
            },
            "size": 5000
        }

elaticsearch-dsl query:

result = Search(using=escli, index="cdr").query(
        inner_hits={"highlight": {"fields": ["accurate_call_duration"]}}
    ).filter(
        "term", client=1212).filter(
            'range', created_time={'gt': date_from, 'lte': date_to}).filter(
                "term", type="incoming").extra(size=5000).execute()

как я могу получить тот же результат, что и запрос в elasticsearch?

Вернуться на верх