Merge branch 'feature-UNOMI-28-ES2X' into feature-UNOMI-70-ES5X # Conflicts: # persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/923e4917 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/923e4917 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/923e4917 Branch: refs/heads/feature-UNOMI-70-ES5X Commit: 923e49171fae139e2197b55ef4b5102d61221edc Parents: a94fdb0 28d7dbd Author: Serge Huber <[email protected]> Authored: Thu Dec 15 16:40:41 2016 +0100 Committer: Serge Huber <[email protected]> Committed: Thu Dec 15 16:40:41 2016 +0100 ---------------------------------------------------------------------- .../java/org/apache/unomi/api/PartialList.java | 25 +++++ buildAndRunNoTests.sh | 34 ++++++ .../ElasticSearchPersistenceServiceImpl.java | 95 +++++++++++++--- .../persistence/spi/PersistenceService.java | 33 ++++++ .../PropertyConditionESQueryBuilder.java | 3 +- .../services/services/SegmentServiceImpl.java | 111 ++++++++++++------- .../resources/OSGI-INF/blueprint/blueprint.xml | 2 + 7 files changed, 242 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/923e4917/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java ---------------------------------------------------------------------- diff --cc persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java index fa4b5e1,d6a136e..0651c3f --- a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java +++ b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java @@@ -699,7 -711,7 +699,7 @@@ public class ElasticSearchPersistenceSe String itemType = (String) clazz.getField("ITEM_TYPE").get(null); if (itemsMonthlyIndexed.contains(itemType) && dateHint == null) { - PartialList<T> r = query(QueryBuilders.idsQuery(itemType).addIds(itemId), null, clazz, 0, 1, null); - PartialList<T> r = query(QueryBuilders.idsQuery(itemType).ids(itemId), null, clazz, 0, 1, null, null); ++ PartialList<T> r = query(QueryBuilders.idsQuery(itemType).addIds(itemId), null, clazz, 0, 1, null, null); if (r.size() > 0) { return r.get(0); } @@@ -1238,35 -1262,14 +1256,36 @@@ SearchResponse response = requestBuilder .execute() .actionGet(); - SearchHits searchHits = response.getHits(); - scrollIdentifier = response.getScrollId(); - totalHits = searchHits.getTotalHits(); - for (SearchHit searchHit : searchHits) { - String sourceAsString = searchHit.getSourceAsString(); - final T value = CustomObjectMapper.getObjectMapper().readValue(sourceAsString, clazz); - value.setItemId(searchHit.getId()); - results.add(value); + if (size == -1) { + // Scroll until no more hits are returned + while (true) { + + for (SearchHit searchHit : response.getHits().getHits()) { + // add hit to results + String sourceAsString = searchHit.getSourceAsString(); + final T value = CustomObjectMapper.getObjectMapper().readValue(sourceAsString, clazz); + value.setItemId(searchHit.getId()); + results.add(value); + } + + response = client.prepareSearchScroll(response.getScrollId()).setScroll(keepAlive).execute().actionGet(); + + // If we have no more hits, exit + if (response.getHits().getHits().length == 0) { + break; + } + } + client.prepareClearScroll().addScrollId(response.getScrollId()).execute().actionGet(); + } else { + SearchHits searchHits = response.getHits(); ++ scrollIdentifier = response.getScrollId(); + totalHits = searchHits.getTotalHits(); + for (SearchHit searchHit : searchHits) { + String sourceAsString = searchHit.getSourceAsString(); + final T value = CustomObjectMapper.getObjectMapper().readValue(sourceAsString, clazz); + value.setItemId(searchHit.getId()); + results.add(value); + } } } catch (Exception t) { logger.error("Error loading itemType=" + clazz.getName() + " query=" + query + " sortBy=" + sortBy, t); http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/923e4917/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java ----------------------------------------------------------------------
