diff --git a/cubicweb_elasticsearch/views.py b/cubicweb_elasticsearch/views.py
index c16822595d811a9fd5092221618218ebc45798db_Y3ViaWN3ZWJfZWxhc3RpY3NlYXJjaC92aWV3cy5weQ==..abc0a8f42d8b530fb2972632d4cf7c1500de6eae_Y3ViaWN3ZWJfZWxhc3RpY3NlYXJjaC92aWV3cy5weQ== 100644
--- a/cubicweb_elasticsearch/views.py
+++ b/cubicweb_elasticsearch/views.py
@@ -127,7 +127,8 @@
     def do_search(self, query_string):
         get_connection(self._cw.vreg.config)
         facet_selections = {}
-        start, stop = 0, 10
+        items_per_page = int(self._cw.form.get("items_per_page", 10))
+        start, stop = 0, items_per_page
         for key, value in self._cw.form.items():
             if key.startswith("es_"):
                 if isinstance(value, list):
@@ -139,8 +140,8 @@
                 facet_selections[key.replace("es_", "")] = value
             if key == "page":
                 try:
-                    start = (max(int(value) - 1, 0)) * 10
-                    stop = start + 10
+                    start = (max(int(value) - 1, 0)) * items_per_page
+                    stop = start + items_per_page
                 except ValueError:
                     pass
         search = self.customize_search(query_string, facet_selections, start, stop)