ElasticSearch中多搜索的最优批量查询大小

2024-10-03 06:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用multisearch查询elasticsearch,但它似乎并没有提高多少时间。在

对于大约70k个查询,不同的批量大小占用的时间为:

对于单个搜索每项花费时间=2611s

对于多搜索(bulksize=1000)所用时间=2400s

对于多搜索(bulksize=10)所用时间=2326s

所以,我需要知道

a)这是进行多重搜索的正确方法吗?在

b)多搜索的最佳批量大小是多少?在

我的代码是:

search_arr = []

        for k in range(i,i+BULK_SIZE):
            search_arr.append({'index':'test'})
            search_arr.append({"query": {"match": {"title": title[k]}}, "size": 5})
        request =''
        for each in search_arr:
            request += '%s \n' %json.dumps(each)

        resp = es.msearch(body=request)

Tags: inforsearchtitlerequest时间批量elasticsearch
1条回答
网友
1楼 · 发布于 2024-10-03 06:24:29

并发搜索的数量受搜索线程池的限制。在

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html

For count/search operations. Thread pool type is fixed with a size of int((# of available_processors * 3) / 2) + 1, queue_size of 1000.

这意味着如果您有单处理器,那么您将有2个并发搜索,其余的请求将进入队列,并在线程再次可用时进行处理。在

相关问题 更多 >