深度分页
- 深度分页是有问题的,假设在一个有五个主分片的索引中,请求结果的第一页(每页10个),那么每个分页需要产生前10 个结果,并返回给协调节点,协调节点对50个结果排序得到全部结果的前10个
- 假设请求第1000页,结果10001 - 10010,首先所有分片需要产生10010结果,然后协调节点对全部的50050个结果排序,最后丢弃掉50050个结果
- 在分布式系统中,对结果排序的成本随分页的深度成指数上升。这就是 web 搜索引擎对任何查询都不要返回超过 1000 个结果的原因。这句话不是很理解
精确值VS全文
- 精确值:日期或者用户Id,或者也可以是一个字符串(类似用户名或邮箱地址)
- 全文:一般很少对全文类型的域做精确匹配
- 全文查询时,es首先分析文档,之后根据结果创建倒排索引
网友评论