From 4809a98ed6f92b572c05cce8db5d3ed5dc8c1a14 Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Thu, 6 Sep 2018 11:38:41 +0200
Subject: [PATCH] Limit ES results count to 10000

---
 arkindex/project/elastic.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arkindex/project/elastic.py b/arkindex/project/elastic.py
index 5ffe51f969..6b38ea987f 100644
--- a/arkindex/project/elastic.py
+++ b/arkindex/project/elastic.py
@@ -34,7 +34,7 @@ class ESQuerySet(object):
             index=self.es_index,
             body={
                 "from": value.start,
-                "size": value.stop - value.start,
+                "size": min(value.stop - value.start, 10000),  # The Scroll API is required to go over 10K results
                 "_source": self._source,
                 "query": self.query,
                 "aggs": self.aggs,
@@ -48,13 +48,13 @@ class ESQuerySet(object):
         return self.count()
 
     def count(self):
-        return self.elastic.count(
+        return min(self.elastic.count(
             index=self.es_index,
             body={
                 "query": self.query,
             },
             doc_type=self.es_type,
-        )['count']
+        )['count'], 10000)  # The Scroll API is required to go over 10K results
 
     def __iter__(self):
         return self[0:len(self)]
-- 
GitLab