我试图用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)
并发搜索的数量受搜索线程池的限制。在
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html
这意味着如果您有单处理器,那么您将有2个并发搜索,其余的请求将进入队列,并在线程再次可用时进行处理。在
相关问题 更多 >
编程相关推荐