# 分頁
在《空白搜索》一節中,搜索結果告訴我們在集群中共有14個文檔匹配我們的(空白)查詢。但是在`hits`數組中只有10個文檔。我們怎樣才能看到其他的呢?
與SQL使用`LIMIT`來控制單“頁”數量類似,Elasticsearch使用的是`from`以及`size`兩個參數:
| 參數 | 說明 |
|-----|-----|
| `size` | 每次返回多少個結果,默認值為`10` |
| `from` | 忽略最初的幾條結果,默認值為`0` |
假設每頁顯示5條結果,那么1至3頁的請求就是:
~~~
GET /_search?size=5GET /_search?size=5&from=5GET /_search?size=5&from=10
~~~
當心不要一次請求過多或者頁碼過大的結果。它們會在返回前排序。一個請求會經過多個分片。每個分片都會生成自己的排序結果。然后再進行集中整理,以確保最終結果的正確性。
> ### 分布式系統中的大頁碼頁面
為了說明白為什么頁碼過大的請求會產生問題,我們就先預想一下我們在搜索一個擁有5個主分片的索引。當我們請求第一頁搜索的時候,每個分片產生自己前十名,然后將它們返回給_請求節點_,然后這個節點會將50條結果重新排序以產生最終的前十名。
現在想想一下我們想獲得第1,000頁,也就是第10,001到第10,010條結果,與之前同理,每一個分片都會先產生自己的前10,010名,然后請求節點統一處理這50,050條結果,然后再丟棄掉其中的50,040條!
現在你應該明白了,在分布式系統中,大頁碼請求所消耗的系統資源是呈指數式增長的。這也是為什么網絡搜索引擎不會提供超過1,000條搜索結果的原因。
> ### TIP
在《重索引》一章中,我們將詳細探討如何才能高效地獲取大量數據。