Browse Source

fix #1629 disable result collapsing in scroll request

Shinsuke Sugaya 7 years ago
parent
commit
f11169716a

+ 1 - 1
src/main/java/org/codelibs/fess/app/service/SearchService.java

@@ -193,7 +193,7 @@ public class SearchService {
                 fessConfig.getIndexDocumentType(),
                 fessConfig.getIndexDocumentType(),
                 searchRequestBuilder -> {
                 searchRequestBuilder -> {
                     queryHelper.processSearchPreference(searchRequestBuilder, userBean);
                     queryHelper.processSearchPreference(searchRequestBuilder, userBean);
-                    return SearchConditionBuilder.builder(searchRequestBuilder)
+                    return SearchConditionBuilder.builder(searchRequestBuilder).scroll()
                             .query(StringUtil.isBlank(sortField) ? query : query + " sort:" + sortField).size(pageSize)
                             .query(StringUtil.isBlank(sortField) ? query : query + " sort:" + sortField).size(pageSize)
                             .responseFields(queryHelper.getScrollResponseFields()).searchRequestType(params.getType()).build();
                             .responseFields(queryHelper.getScrollResponseFields()).searchRequestType(params.getType()).build();
                 },
                 },

+ 8 - 1
src/main/java/org/codelibs/fess/es/client/FessEsClient.java

@@ -972,6 +972,7 @@ public class FessEsClient implements Client {
         private FacetInfo facetInfo;
         private FacetInfo facetInfo;
         private String similarDocHash;
         private String similarDocHash;
         private SearchRequestType searchRequestType = SearchRequestType.SEARCH;
         private SearchRequestType searchRequestType = SearchRequestType.SEARCH;
+        private boolean isScroll = false;
 
 
         public static SearchConditionBuilder builder(final SearchRequestBuilder searchRequestBuilder) {
         public static SearchConditionBuilder builder(final SearchRequestBuilder searchRequestBuilder) {
             return new SearchConditionBuilder(searchRequestBuilder);
             return new SearchConditionBuilder(searchRequestBuilder);
@@ -1023,6 +1024,11 @@ public class FessEsClient implements Client {
             return this;
             return this;
         }
         }
 
 
+        public SearchConditionBuilder scroll() {
+            this.isScroll = true;
+            return this;
+        }
+
         public boolean build() {
         public boolean build() {
             if (StringUtil.isBlank(query)) {
             if (StringUtil.isBlank(query)) {
                 return false;
                 return false;
@@ -1109,7 +1115,8 @@ public class FessEsClient implements Client {
                         }));
                         }));
             }
             }
 
 
-            if (!SearchRequestType.ADMIN_SEARCH.equals(searchRequestType) && fessConfig.isResultCollapsed() && similarDocHash == null) {
+            if (!SearchRequestType.ADMIN_SEARCH.equals(searchRequestType) && !isScroll && fessConfig.isResultCollapsed()
+                    && similarDocHash == null) {
                 searchRequestBuilder.setCollapse(getCollapseBuilder(fessConfig));
                 searchRequestBuilder.setCollapse(getCollapseBuilder(fessConfig));
             }
             }