Elasticsearch DSL python сканирование кеша - PullRequest
0 голосов
/ 18 февраля 2020

Итак, у меня есть функция для выполнения запросаasticsearch с пакетомasticsearch-dsl, функция запускается в потоке.

 def search_parallel(self, query, extra_func=None):      

    slices = 5
    res = []
    def get_data(slice_no):
        s = Search(using=self.es, index=self.index['index'])
        s = s.update_from_dict(query)
        s = s.extra(slice={"id": slice_no, "max": slices})  
        for d in s.scan():
            data = d.to_dict()
            res.append(data)


    try:
        thread_list = []
        for i in range(slices):
            t = threading.Thread(target=get_data, args=(i,))
            thread_list.append(t)
            t.start()

        for t in thread_list:
            t.join()

        Logger.info("FINISHED SLICE SEARCH")
        return res
    except Exception as e:
        raise e

У меня есть несколько избыточных запросов, которые показывают одинаковый результат в моей программе, есть ли возможность кэшировать результат, потому что я не могу найти его в документации, или лучший способ кэшировать тот же результат

...