Pagination
While searching, users can't view all the results at once. They like to see one batch at a time. Usually, a single batch contains 10 matched documents, as in Google search results, where each page contains 10 search results. This also gives us an advantage over the search engine as it need not send all the results back at once. The following is how we use pagination in Elasticsearch. Let's say that we are interested in seeing only five results at a time, then to get the first page, we have to use the following parameters:
size
=5
(defaults to 10).from
=0
,5
,10
,15
,20
(defaults to0
). This depends on the page number you need.
Also, it should be noted that the total number of pages can be calculated from count
/_size
. Sample query for the page 5 of the search result where we show 5 results at a time:
{ "from" : 4 , "size" : 5, "query": {… } }
This is how the complete query looks, which enables pagination and highlighting:
{ "from": 0, "size": 10, "query": { "simple_query_string": { "query": "china", "fields": [ "_all" ] } }, "highlight": { "fields": { "html": { "pre_tags": [ "<p>" ], "post_tags": [ "</p>" ], "fragment_size": 10, "number_of_fragments": 3 } } } }
The head UI explained
When you open the head page, you see a UI that lists all the indexes and all the information related to it. Also, by looking at the tabs to the left, you know how well your cluster is doing, as shown in the following figure:
Now, take the Browser tab in the head UI. You will see all the feeds you index here. Note that it shows only the first 10 indexed feeds.
Now, on selecting one of your feeds, a nice model window appear, showing you the following view:
In this chapter, we looked at how we can deploy Elasticsearch. We had a quick look at of how to set an analyzer and index some documents. Then, we attempted to search for a document we indexed. We will look at how pagination and highlighting work in later sections of this book.