Elasticsearch是一个基于Lucene的搜索服务器,其搜索的核心原理是倒排索引,今天谈下在日常项目中使用它遇到的一些问题及优化解决办法。
一. 搜索的深度分页问题
在日常项目中,经常会有分页搜索并支持跳页的需求,类似百度、Google搜索那样,使用ES进行这类需求的搜索时一般采用from/size的方式,from指明开始的位置,size指定获取的条数,通过这种方式获取数据称为深度分页。
通过这种分页方式当我取 from为11000,size为10时,发现无法获取:
ES报错说超过了max_result_window
初步解决方案:
我修改了索引的设置,将max_result_window设置为了10000000:
PUT ccnu_resource/_settings { "index": { "max_result_window": 10000000 } }