Я пишу код для запроса данных в 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'])