jjzjj

SearchAfter

全部标签

ElasticSearch深度分页 Scroll + SearchAfter查询

深度分页引出:SQL语句分页查询limit10000,10会查出10010条数据,然后去掉前10000条,解决:可以使用流式查询(fetchsize)或按照id升序,每次id大于上一次查询结果的最大值。同样,es中存在类似的问题即深度分页解决:scroll滚动查询,或者使用Search-After查询DSL语句:POSThttp://xxx:9200/enterprise_wechat_test.alias/_search?scroll=1m{"query":{"match_all":{}},"size":10}参数scroll,表示暂存搜索结果的时间返回一个_scroll_id,_scrol

ES的searchAfter使用详解

searchAfter简单来说就是将from。。。size中的from用searchAfter的sort字段表示,通过不断更新此sort字段实现向下滚动效果。但是和from不同的是对数据更新不敏感。searchafter官网介绍使用search_after时要求你的query值和sort值相同。更具体点是要求你的字段相同,你可以修改它的逻辑,比如你可以查时间为a的数据,那么你将逻辑改为比a大或者比a小都可以,但是你的逻辑必须是时间。sort同理,你可以升序也可以降序但你用来排序的字段不要变。search-after使用需知:1使用search-after时不要修改你的query和sort字段2

ES的searchAfter使用详解

searchAfter简单来说就是将from。。。size中的from用searchAfter的sort字段表示,通过不断更新此sort字段实现向下滚动效果。但是和from不同的是对数据更新不敏感。searchafter官网介绍使用search_after时要求你的query值和sort值相同。更具体点是要求你的字段相同,你可以修改它的逻辑,比如你可以查时间为a的数据,那么你将逻辑改为比a大或者比a小都可以,但是你的逻辑必须是时间。sort同理,你可以升序也可以降序但你用来排序的字段不要变。search-after使用需知:1使用search-after时不要修改你的query和sort字段2