在实际应用中,除了简单的查看某个字段满足某个值的数据之外,可能还会有更多的需求。这一篇主要记录一下查询结果分页、每页展示数量设置,如何对查询结果排序,如何筛选返回字段。
- 结果起始页和页面大小
Elasticsearch中会默认将搜索结果按10条一页进行分页,返回第1页(也就是前10个)结果。
1. from——用于分页操作,默认是0,,表示第一页。可以设置从第几页显示,例如满足条件的有n条,from设置1(表示第二页),则返回从11条开始的10条记录,如果n<=10,设置1就会返回空,如果10<n<20,就返回第11到n这几条数据。但需注意:为了确定第二页的数据,Elasticsearch就必须计算前20项结果,如果结果集合不断增加,获取某些靠后的翻页将会代价高昂。
2. size——设置每一页返回的文档数量,默认是10。需要注意的是:size有最大值,最大可以设置显示10000,如果想要更改这个值,可以在创建索引时设置max_result_window
,或者重新设置这个参数。 更新设置size最大值.png 参数修改结果.png 3. from一般和size一起使用,如下图,就会返回前两条数据。 from和size使用示例.png - 对返回结果进行排序
sort——指定用于排序的字段和排序规则。默认的排序是基于文档的得分。例如下图,其中_score
就是表示在根据日期降序排序(desc代表降序,asc代表升序)后,再根据文档得分排序。 sort使用用例.png - 对字段进行筛选
_source——指定_source字段如何返回。默认返回完整的_source字段。通过配置_source,将过滤返回的字段。如下图,其中"include"表示包含哪些字段,"exclude"表示不包含什么。 _source的使用示例.png 注:上面这些查询设置都可以一起使用。
网友评论