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/master
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
----------------------------------------------------------------------

Reply via email to