Как одновременно получать большие данные из поиска elasti c? - PullRequest
0 голосов
/ 10 июля 2020

То, что я пробовал ... получить идентификатор прокрутки. А затем получить данные до len (response ['hits'] ['hits']) == 0 с использованием идентификатора прокрутки.

если количество записей равно 1 миллиону, программа должна выполнить 100 запросов. .

Я пробовал модуль многопроцессорности в python. Но тут не повезло ..

elastic_url = 'http://0.0.0.0/'+index_name+'/_search?scroll=2m'
sroll_api_url = 'http://0.0.0.0/_search/scroll'
r1=requests.request(
      "POST",
       elastic_url,
       data=json.dumps(query_body),
       headers=headers
      )

process=[]
for _ in range(5):
    p1=multiprocessing.Process(target=fetch_data_scroll_id,args=([scroll_payload],))
    p1.start()
    process.append(p1)
for p in process:
    p.join()

I get the following error :
{
    "_scroll_id": "DnF1ZXJ5VGhlbkXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXc3UXJHUy1PNUdvQ2lyencAAAAAACCS6BY0bXdKN1lHN1FyR1MtTzVHb0Npcnp3AAAAAAAgkuYWNG13SjdZRzdRckdTLU81R29DaXJ6dwAAAAAAIJLpFjRtd0o3WUc3UXJHUy1PNUdvQ2lyencAAAAAACCS5xY0bXdKN1lHN1FyR1MtTzVHb0Npcnp3",
    "_shards": {
        "failures": [
            {
                "index": null,
                "shard": -1,
                "reason": {
                    "type": "search_context_missing_exception",
                    "reason": "No search context found for id [2134760]"
                }
            },
            {
                "index": "logstash-2020.07.07",
                "reason": {
                    "type": "search_context_missing_exception",
                    "reason": "No search context found for id [2134757]"
                },
                "shard": 0,
                "node": "XXXXXXXXXXXXXXXXXXX"
            }
        ],
        "total": 5,
        "successful": 3,
        "skipped": 0,
        "failed": 2
    },
    "timed_out": false,
    "took": 17,
    "hits": {
        "total": 106157,
        "max_score": null,
        "hits": []
    },
    "terminated_early": true
}

Please help.....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...