首页 > 其他分享 >Elasticsearch的SearchAfter

Elasticsearch的SearchAfter

时间:2022-12-09 16:05:53浏览次数:35  
标签:sort index search hits member Elasticsearch SearchAfter total

Elasticsearch使用Search After深度分页,分页的方式是上一页的最后一条数据sort里面的值来确定下一页的位置,在分页请求的过程中,有索引数据的增删,会实时的反映到游标上。每一页的数据依赖于上一页最后一条数据,所以不能跳页请求;

使用search_after必须要设置from=0;

最后一条数据里拿到sort属性的值传入到search_after;

curl 第一次请求:

index/type/_search?pretty -d
{
"size": 10,
"query": {
"match": {
"age": "男"
}
},
"sort": [{
"_uid": {
"order": "desc"
}
}]
}

返回:

{
"took": 28,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 286,
"max_score": null,
"hits": [{
"_index": "user_member",
"_type": "member_itu",
"_id": "123465",
"_score": null,
"_source": {
"userId": "123456",
"name": "123",
"updateTime": "2022-12-09 13:05"
},
"sort": [
"123465"
]
}]
}
}


curl 分页第二次请求:

index/type/_search?pretty -d
{
"size": 10,
"search_after": ["123456"],
"query": {
"match": {
"age": "男"
}
},
"sort": [{
"_uid": {
"order": "desc"
}
}]
}

分页返回:

{
"took": 28,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 286,
"max_score": null,
"hits": [{
"_index": "user_member",
"_type": "member_itu",
"_id": "123457",
"_score": null,
"_source": {
"userId": "123457",
"name": "124",
"updateTime": "2022-12-09 14:05"
},
"sort": [
"123457"
]
}]
}
}

标签:sort,index,search,hits,member,Elasticsearch,SearchAfter,total
From: https://blog.51cto.com/u_15261296/5926128

相关文章

  • elasticsearch别名
    es创建别名的好处:1、不暴露索引名2、可以为多个结构类似的索引(动态索引)创建相同的别名,查询的时候直接查询别名,然后自动匹配多个索引。在不同的索引创建窗口。比如,如果......
  • KubeSphere 接入外部 Elasticsearch 最佳实践
    作者:张坚,科大讯飞开发工程师,云原生爱好者。大家好,我是张坚。今天来聊聊如何在KubeSphere中集成外置的ES组件。KubeSphere在安装完成时候可以启用日志组件,这样会安装ES......
  • KubeSphere 接入外部 Elasticsearch 最佳实践
    作者:张坚,科大讯飞开发工程师,云原生爱好者。大家好,我是张坚。今天来聊聊如何在KubeSphere中集成外置的ES组件。KubeSphere在安装完成时候可以启用日志组件,这样会安......
  • ElasticSearch系列
    01-ElasticSearch之-介绍02-ElasticSearch之-安装03-ElasticSearch之-插件04-ElasticSearch之-倒排索引05-ElasticSearch之-索引操作06-ElasticSearch之-映射管......
  • Java操作ElasticSearch(四、排序、高亮、分页、Filter过滤、source筛选)
    排序通过SearchSourceBuilder的sort(String,SortOrder)方法用来实现排序条件的封装@Testpublicvoidtest18()throwsIOException{SearchRequestrequest......
  • Java操作ElasticSearch(三、查询)
    查询的步骤如下创建SearchSourceBuilder对象添加查询条件QueryBuilders添加排序、分页等其他条件创建SearchRequest对象,并指定索引库名称发起请求,得到结果获取......
  • Elasticsearch学习小结
    本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/286什么是es?Elasticsearch是由Apache开源的一个兼有搜索引擎和NoSQL数......
  • Elasticsearch xxx
    操作索引1添加put ​​http://192.168.1.1/index ​​index表示索引名称2查询get​​http://192.168.1.1/index ​​3关闭post http://192.168.1.1/index/_clos......
  • 初次搭建win下的elasticsearch环境
    搭建这个环境,当然是为了elk啦只是搭建这个环境暗藏了几个坑 1.启动Elasticsearch时报错java.nio.file.NoSuchFileException\lib\dt.jar这个问题是因为本机上安装......
  • elasticsearch中如何实现dinstinct去重功能
    一、功能场景在mysql数据库中查询数据时,我们可以采用dinstinct关键字去重。那么,在ES中如何实现查询结果去重呢?二、原理分析DISTINCT关键字去重的sql语句等价于对需要去重的......