码迷,mamicode.com
首页 > 其他好文 > 详细

elasticsearch

时间:2018-02-24 21:52:34      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:跳过   并且   log   查询   pos   索引   原因   分布式   ast   

took:执行整个搜索请求耗费了多少毫秒。

 

/_search
在所有的索引中搜索所有的类型
/gb/_search
在 gb 索引中搜索所有的类型
/gb,us/_search
在 gb 和 us 索引中搜索所有的文档
/g*,u*/_search
在任何以 g 或者 u 开头的索引中搜索所有的类型
/gb/user/_search
在 gb 索引中搜索 user 类型
/gb,us/user,tweet/_search
在 gb 和 us 索引中搜索 user 和 tweet 类型
/_all/user,tweet/_search
在所有的索引中搜索 user 和 tweet 类型

 

GET /_search?size=5
GET /_search?size=5&from=5
GET /_search?size=5&from=10

size
显示应该返回的结果数量,默认是 10
from
显示应该跳过的初始结果数量,默认是 0

理解为什么深度分页是有问题的,我们可以假设在一个有 5 个主分片的索引中搜索。 
当我们请求结果的第一页(结果从 110 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,
协调节点对 50 个结果排序得到全部结果的前 10 个。

现在假设我们请求第 1000 页--结果从 1000110010 。
所有都以相同的方式工作除了每个分片不得不产生前10010个结果以外。 
然后协调节点对全部 50050 个结果排序最后丢弃掉这些结果中的 50040 个结果。

可以看到,在分布式系统中,对结果排序的成本随分页的深度成指数上升。
这就是 web 搜索引擎对任何查询都不要返回超过 1000 个结果的原因。

 

elasticsearch

标签:跳过   并且   log   查询   pos   索引   原因   分布式   ast   

原文地址:https://www.cnblogs.com/kgdxpr/p/8467509.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!