asticsearch_dsl и python -Query Индекс только за предыдущие дни - Производительность против _все - PullRequest
0 голосов
/ 15 апреля 2019

Я пишу код для запроса данных в Elasticsearch.У нас огромные объемы данных, поэтому я использую функцию сканирования и ищу определенный индекс.Мы индексируем эластичный поиск по дням, например, today = index_2019_04_15 и yesterday = index_2019_04_14.Есть ли способ, которым я могу запросить только индекс за предыдущие дни?

Во-вторых, с точки зрения выполнения _all, а затем ограничения запроса: 2019-04-14, я увижу большой скачок производительности?Если нет, то я могу просто сделать запрос предыдущего дня.

Вот мой код:

import pandas as pd
from elasticsearch_dsl import Search
from elasticsearch_dsl import connections

class get_data:

    def __init__(self, host, query):
        self.host = host
        self.query = query

    def pull_es_data(self):
        connections.create_connection(alias='client',hosts=self.host,timeout=60)

        s = Search(using='client', index="data-2019-04-15") \
        .query("match", clientid=r"AB1234-12345")

        response = s.scan()

        return response

test = get_data("localhost","test")

x = test.pull_es_data()

results_df = pd.DataFrame(([item.clientid,item.clientlocation] for item in x),\
                          columns=['clientid','clientlocation'])

1 Ответ

0 голосов
/ 15 апреля 2019

Мне удалось позаботиться об этом, используя Index в Elasticsearch-dsl

def get_index_list(self):

    i = Index("*").get_alias("client")

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