ElasticSearch Scroll API выпуск - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь использовать API прокрутки в Python, и у меня возникла проблема из-за циклического перебора всего моего набора данных.

Я получаю около 100 результатов, когда их должно быть более 150 тыс. (Я вижу их в кибане)

прикреплен мой код

res = helpers.scan(client = es, scroll = '2m', query = {
      "size": 10000,
        "query": {
          "match": {
            "type": {
              "query": "IP_Address"
            }}}}, 
    index = "logstash-*")

# function to return hits from the elasticsearch query in res

def get_es_json(es_scan):
    for hits in es_scan:
        return hits

# iterate through results with defined number of results

def return_es_results(es_json_data, num_results):
    for i in range(num_results):
        data = get_es_json(es_json_data)
        print(data['_source']['geoip']['asn'])

return_es_results(res, 100)

1 Ответ

0 голосов
/ 09 мая 2019

это потому, что ваш вызов "return_es_results (res, 100)" <--- обратите внимание на 100 в вашем вызове. </p>

, так что цикл до 100 ... вы запрашиваете только 100 результатов!

вы можете разбивать на страницы?если вы используете django, здесь есть некоторая документация по нумерации страниц: https://docs.djangoproject.com/en/2.2/topics/pagination/

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