Skip to content
This repository was archived by the owner on Sep 19, 2023. It is now read-only.

Commit c489008

Browse files
DATASOLR-209 - GroupOptions Interface Polishment
renamed field groupCount to totalCount; renamed getGroupRows to getLimit; removed Group prefix from methods with exception of groupBy*, groupMain and groupFacet; introduced validation of rows and cachePercent parameters.
1 parent ff7f968 commit c489008

File tree

6 files changed

+27
-27
lines changed

6 files changed

+27
-27
lines changed

src/main/java/org/springframework/data/solr/core/DefaultQueryParser.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -164,15 +164,15 @@ private void processGroupOptions(SolrQuery solrQuery, Query query) {
164164
solrQuery.add(GroupParams.GROUP_CACHE_PERCENTAGE, String.valueOf(groupOptions.getCachePercent()));
165165
}
166166

167-
if (groupOptions.getGroupRows() != null && groupOptions.getGroupRows() >= 0) {
168-
solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getGroupRows());
167+
if (groupOptions.getLimit() != null && groupOptions.getLimit() >= 0) {
168+
solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getLimit());
169169
}
170170

171-
if (groupOptions.getGroupOffset() != null && groupOptions.getGroupOffset() >= 0) {
172-
solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getGroupOffset());
171+
if (groupOptions.getOffset() != null && groupOptions.getOffset() >= 0) {
172+
solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getOffset());
173173
}
174174

175-
solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isGroupTotalCount());
175+
solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isTotalCount());
176176
solrQuery.set(GroupParams.GROUP_FACET, groupOptions.isGroupFacets());
177177
solrQuery.set(GroupParams.GROUP_TRUNCATE, groupOptions.isTruncateFacets());
178178
}

src/main/java/org/springframework/data/solr/core/ResultHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ static <T> Map<Object, GroupResult<T>> convertGroupQueryResponseToGroupResultMap
272272

273273
SolrDocumentList documentList = group.getResult();
274274
List<T> beans = solrTemplate.convertSolrDocumentListToBeans(documentList, clazz);
275-
Page<T> page = new PageImpl<T>(beans, query.getGroupOptions().getGroupPageRequest(), documentList.getNumFound());
275+
Page<T> page = new PageImpl<T>(beans, query.getGroupOptions().getPageRequest(), documentList.getNumFound());
276276
groupEntries.add(new SimpleGroupEntry<T>(group.getGroupValue(), page));
277277
}
278278

src/main/java/org/springframework/data/solr/core/query/GroupOptions.java

+15-15
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class GroupOptions {
4545

4646
private boolean truncateFacets = false;
4747
private boolean groupFacets = false;
48-
private boolean groupCount = false;
48+
private boolean totalCount = false;
4949
private boolean groupMain = false;
5050
private int cachePercent = DEFAULT_CACHE_PERCENT;
5151

@@ -135,23 +135,23 @@ public List<Query> getGroupByQueries() {
135135
* @param offset
136136
* @return
137137
*/
138-
public GroupOptions setGroupOffset(Integer offset) {
138+
public GroupOptions setOffset(Integer offset) {
139139

140-
this.offset = offset;
140+
this.offset = offset == null ? null : Math.max(0, offset);
141141
return this;
142142
}
143143

144144
/**
145145
* @return initial offset of each group
146146
*/
147-
public Integer getGroupOffset() {
147+
public Integer getOffset() {
148148
return offset;
149149
}
150150

151151
/**
152152
* @return the number of rows to return for each group.
153153
*/
154-
public Integer getGroupRows() {
154+
public Integer getLimit() {
155155
return limit;
156156
}
157157

@@ -161,7 +161,7 @@ public Integer getGroupRows() {
161161
* @param limit
162162
* @return
163163
*/
164-
public GroupOptions setGroupLimit(Integer limit) {
164+
public GroupOptions setLimit(Integer limit) {
165165

166166
this.limit = limit;
167167
return this;
@@ -201,17 +201,17 @@ public Sort getSort() {
201201
* @param groupCount
202202
* @return
203203
*/
204-
public GroupOptions setGroupTotalCount(boolean groupCount) {
204+
public GroupOptions setTotalCount(boolean groupCount) {
205205

206-
this.groupCount = groupCount;
206+
this.totalCount = groupCount;
207207
return this;
208208
}
209209

210210
/**
211211
* @return whether the group count should be included in the response.
212212
*/
213-
public boolean isGroupTotalCount() {
214-
return groupCount;
213+
public boolean isTotalCount() {
214+
return totalCount;
215215
}
216216

217217
/**
@@ -222,7 +222,7 @@ public boolean isGroupTotalCount() {
222222
*/
223223
public GroupOptions setCachePercent(int cachePercent) {
224224

225-
this.cachePercent = cachePercent;
225+
this.cachePercent = Math.max(0, Math.min(100, cachePercent));
226226
return this;
227227
}
228228

@@ -255,7 +255,7 @@ public boolean isTruncateFacets() {
255255
/**
256256
* Defines whether field facet shall be computed in grouped fashion.
257257
*
258-
* @param truncateFacets
258+
* @param groupFacets
259259
* @return
260260
*/
261261
public GroupOptions setGroupFacets(boolean groupFacets) {
@@ -290,16 +290,16 @@ public boolean isGroupMain() {
290290
return groupMain;
291291
}
292292

293-
public Pageable getGroupPageRequest() {
293+
public Pageable getPageRequest() {
294294

295295
if (this.limit == null && this.offset == null) {
296296
return null;
297297
}
298298

299-
int rows = this.limit != null ? this.limit : DEFAULT_GROUP_LIMIT;
299+
int limit = this.limit != null ? this.limit : DEFAULT_GROUP_LIMIT;
300300
int offset = this.offset != null ? this.offset : 0;
301301

302-
return new SolrPageRequest(rows != 0 ? offset / rows : 0, rows, this.sort);
302+
return new SolrPageRequest(limit != 0 ? offset / limit : 0, limit, this.sort);
303303
}
304304

305305
}

src/test/java/org/springframework/data/solr/core/DefaultQueryParserTests.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1027,13 +1027,13 @@ public void testConstructGroupQueryWithAllPossibleParameters() {
10271027
SimpleQuery query = new SimpleQuery();
10281028
query.addCriteria(new SimpleStringCriteria("*:*"));
10291029
query.setGroupOptions(groupOptions);
1030-
groupOptions.setGroupOffset(1);
1031-
groupOptions.setGroupLimit(2);
1030+
groupOptions.setOffset(1);
1031+
groupOptions.setLimit(2);
10321032
groupOptions.addGroupByField("field_1");
10331033
groupOptions.addGroupByFunction(MaxFunction.max("field_1", "field_2"));
10341034
groupOptions.addGroupByQuery(new SimpleQuery("*:*"));
10351035
groupOptions.addSort(new Sort(Sort.Direction.DESC, "field_3"));
1036-
groupOptions.setGroupTotalCount(true);
1036+
groupOptions.setTotalCount(true);
10371037

10381038
SolrQuery solrQuery = queryParser.constructSolrQuery(query);
10391039

src/test/java/org/springframework/data/solr/core/ITestSolrTemplate.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ public void testRegularGroupQuery() {
813813
groupOptions.addGroupByFunction(f);
814814
groupOptions.addGroupByQuery(q1);
815815
groupOptions.addGroupByQuery(q2);
816-
groupOptions.setGroupLimit(2);
816+
groupOptions.setLimit(2);
817817

818818
// asserts result page
819819
GroupPage<ExampleSolrBean> groupResultPage = solrTemplate.queryForGroupPage(groupQuery, ExampleSolrBean.class);

src/test/java/org/springframework/data/solr/core/ResultHelperTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ public void testConvertGroupQueryResponseToGroupResultList() {
440440
Mockito.when(groupCommand1.getNGroups()).thenReturn(2);
441441

442442
GroupOptions groupOptions = new GroupOptions();
443-
groupOptions.setGroupLimit(1);
443+
groupOptions.setLimit(1);
444444

445445
Mockito.when(query.getPageRequest()).thenReturn(new PageRequest(0, 1));
446446
Mockito.when(query.getGroupOptions()).thenReturn(groupOptions);
@@ -503,7 +503,7 @@ public void testConvertGroupQueryResponseToGroupResultListWhenNoCountOfGroups()
503503
Mockito.when(groupCommand1.getNGroups()).thenReturn(null);
504504

505505
GroupOptions groupOptions = new GroupOptions();
506-
groupOptions.setGroupLimit(1);
506+
groupOptions.setLimit(1);
507507

508508
Mockito.when(query.getPageRequest()).thenReturn(new PageRequest(0, 1));
509509
Mockito.when(query.getGroupOptions()).thenReturn(groupOptions);

0 commit comments

Comments
 (0)