es scroll size 设置问题
来源:互联网 发布:黑马程序员java毕业生 编辑:程序博客网 时间:2024/05/27 12:21
先看看 searchType 几个参数 说明
直接 百度 拿来主义
1、query and fetch
向索引的所有分片(shard)都发出查询请求,各分片返回的时候把元素文档(document)和计算后的排名信息一起返回。这种搜索方式是最快的。因为相比下面的几种搜索方式,这种查询方法只需要去shard查询一次。但是各个shard返回的结果的数量之和可能是用户要求的size的n倍。
2、query then fetch(默认的搜索方式)
如果你搜索时,没有指定搜索方式,就是使用的这种搜索方式。这种搜索方式,大概分两个步骤,第一步,先向所有的shard发出请求,各分片只返回排序和排名相关的信息(注意,不包括文档document),然后按照各分片返回的分数进行重新排序和排名,取前size个文档。然后进行第二步,去相关的shard取document。这种方式返回的document与用户要求的size是相等的。
3、DFS query and fetch
这种方式比第一种方式多了一个初始化散发(initial scatter)步骤,有这一步,据说可以更精确控制搜索打分和排名。
4、DFS query then fetch
比第2种方式多了一个初始化散发(initial scatter)步骤。DSF是什么缩写?初始化散发是一个什么样的过程?
从es的官方网站我们可以指定,初始化散发其实就是在进行真正的查询之前,先把各个分片的词频率和文档频率收集一下,然后进行词搜索的时候,各分片依据全局的词频率和文档频率进行搜索和排名。显然如果使用DFS_QUERY_THEN_FETCH这种查询方式,效率是最低的,因为一个搜索,可能要请求3次分片。但,使用DFS方法,搜索精度应该是最高的。
至于DFS是什么缩写,没有找到相关资料,这个D可能是Distributed,F可能是frequency的缩写,至于S可能是Scatter的缩写,整个单词可能是分布式词频率和文档频率散发的缩写。
总结一下,从性能考虑QUERY_AND_FETCH是最快的,DFS_QUERY_THEN_FETCH是最慢的。从搜索的准确度来说,DFS要比非DFS的准确度更高。
下面是个人对 返回指定 size 个数 方案的解决
方法 1 更改配置 设置 type index 副本 个数为1
方法2 使用 default 的 类型
方法3 使用其他 逻辑自己来控制 ,代码实现
暂时还没有找到更好的方法 ,未完待续。。。
0 0
- es scroll size 设置问题
- es scroll 代替 form size 实现 分页 java 版本
- es scroll 查询
- es的scroll api使用
- from-size VS scroll-scan
- es中的scan and scroll搜索
- es中的scan and scroll搜索
- Elasticsearch分页查询From&Size VS scroll
- css滚动条 scroll问题 添加scroll 显示scroll
- scroll连续滚动问题
- es问题
- 解决Font size和Display size设置到最大,显示异常的问题
- ios-控件size和center设置顺序的问题
- Elasticsearch——分页查询From&Size VS scroll
- Elasticsearch——分页查询From&Size VS scroll
- Elasticsearch——分页查询From&Size VS scroll
- Elasticsearch——分页查询From&Size VS scroll
- ES安全设置
- 性能测试前期,如何对一个系统的并发量进行评估?
- ios 仿京东商品属性选择界面
- CollapsingToolbarLayout及Toolbar
- 图片内容在不同分辨率下居中显示
- Hrbust 1000 A + B Problem【明天校赛加油~】
- es scroll size 设置问题
- 博客开通序
- GUI_多级菜单案例
- Spring ActiveMQ 整合(五): 死信队列
- 关于Vue.js的一些总结(1)
- JSON.parse()和JSON.stringify()
- PhpExcel的使用、示例及注意事项
- TestNG中的配置文件
- 欢迎使用CSDN-markdown编辑器