项目场景:
使用ElasticSearch查询分页数据
问题描述
有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条
原因分析:
因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所以我们需要通过改变size(返回数据的大小)去改变分页查询的数据条数大小,若没有设置size只能是返回10条
解决方案:
(1)使用kibanna解决
GET /article_content/_search
{
"query": {
"match_all": {}
},
"from": 0, // 分页开始的位置,默认为0
"size": 1000, // 期望获取的文档总数
}
(2)使用Java的api解决
@Test
void getDocumentMatch() throws IOException {
SearchRequest request = new SearchRequest("article_content");
request.source().query(QueryBuilders.matchQuery("content","公众号"));
request.source().size(1000); //改变期望获得文档的大小
request.source().trackTotalHits(true);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
parseResponse(response);
}
版权归原作者 OHJ小白 所有, 如有侵权,请联系我们删除。