条件查询
ES中存储的数据量为100万条,当根据条件查询ES中符合条件的所有数据时,ES查询速率很慢,需要一分多钟。那么请问在这种情况下,怎样才能提高ES的查询效率呢?
Elasticsearch • kennywu76 回复了问题 • 8 人关注 • 6 个回复 • 22049 次浏览 • 2017-08-31 11:58
kennywu76 回答了问题 • 2017-08-31 11:58 • 6 个回复
ES中存储的数据量为100万条,当根据条件查询ES中符合条件的所有数据时,ES查询速率很慢,需要一分多钟。那么请问在这种情况下,怎样才能提高ES的查询效率呢?
我觉得和ES没有关系,是代码逻辑有问题。
看起来这段代码是通过scoll查询将满足条件的几十万条数据,1万条一个批次分批取回。 while循环里,想通过下面这个方法:
customers = getCustomers(customers,respons... 显示全部 »
看起来这段代码是通过scoll查询将满足条件的几十万条数据,1万条一个批次分批取回。 while循环里,想通过下面这个方法:
customers = getCustomers(customers,respons... 显示全部 »
我觉得和ES没有关系,是代码逻辑有问题。
看起来这段代码是通过scoll查询将满足条件的几十万条数据,1万条一个批次分批取回。 while循环里,想通过下面这个方法:
customers = getCustomers(customers,response);
将response里解析出来的结果放到customers这个list里面。
这个赋值是做了对象的拷贝,意味着每次迭代,就拷贝一个更大的list,越来越慢。 正确的做法是每次迭代解析出response里的结果后,直接add到customers列表。
看起来这段代码是通过scoll查询将满足条件的几十万条数据,1万条一个批次分批取回。 while循环里,想通过下面这个方法:
customers = getCustomers(customers,response);
将response里解析出来的结果放到customers这个list里面。
这个赋值是做了对象的拷贝,意味着每次迭代,就拷贝一个更大的list,越来越慢。 正确的做法是每次迭代解析出response里的结果后,直接add到customers列表。
ES中存储的数据量为100万条,当根据条件查询ES中符合条件的所有数据时,ES查询速率很慢,需要一分多钟。那么请问在这种情况下,怎样才能提高ES的查询效率呢?
回复Elasticsearch • kennywu76 回复了问题 • 8 人关注 • 6 个回复 • 22049 次浏览 • 2017-08-31 11:58