You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mu...@apache.org on 2019/07/03 14:13:22 UTC
[lucene-solr] branch branch_8x updated: SOLR-13603: remove
deprecated groupSpec methods usage
This is an automated email from the ASF dual-hosted git repository.
munendrasn pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new fd93b43 SOLR-13603: remove deprecated groupSpec methods usage
fd93b43 is described below
commit fd93b43cf935343cb5fe375c938564e86406dd9f
Author: Munendra S N <mu...@apache.org>
AuthorDate: Wed Jul 3 19:19:12 2019 +0530
SOLR-13603: remove deprecated groupSpec methods usage
This is precursor to removing deprecated methods
---
solr/CHANGES.txt | 2 ++
.../apache/solr/handler/component/QueryComponent.java | 19 +++++++++++--------
.../java/org/apache/solr/request/SimpleFacets.java | 2 +-
.../SearchGroupShardResponseProcessor.java | 4 ++--
.../TopGroupsShardResponseProcessor.java | 14 ++++++++------
.../TopGroupsResultTransformer.java | 4 ++--
.../GroupedEndResultTransformer.java | 6 ++++--
.../MainEndResultTransformer.java | 4 ++--
.../SimpleEndResultTransformer.java | 4 ++--
9 files changed, 34 insertions(+), 25 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index e916151..e04f85d 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -194,6 +194,8 @@ Other Changes
* SOLR-12364: Add test cases for edismax boost (David Smiley, Munendra S N)
+* SOLR-13603: Remove usage of GroupingSpecification's deprecated methods (Munendra S N)
+
================== 8.1.2 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
index 4461f1f..32f2e40 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
@@ -1306,7 +1306,7 @@ public class QueryComponent extends SearchComponent
for (String field : groupingSpec.getFields()) {
topsGroupsActionBuilder.addCommandField(new SearchGroupsFieldCommand.Builder()
.setField(schema.getField(field))
- .setGroupSort(groupingSpec.getGroupSort())
+ .setGroupSort(groupingSpec.getGroupSortSpec().getSort())
.setTopNGroups(cmd.getOffset() + cmd.getLen())
.setIncludeGroupCount(groupingSpec.isIncludeGroupCount())
.build()
@@ -1342,7 +1342,8 @@ public class QueryComponent extends SearchComponent
.setTruncateGroups(groupingSpec.isTruncateGroups() && groupingSpec.getFields().length > 0)
.setSearcher(searcher);
- int docsToCollect = Grouping.getMax(groupingSpec.getWithinGroupOffset(), groupingSpec.getWithinGroupLimit(), searcher.maxDoc());
+ SortSpec withinGroupSortSpec = groupingSpec.getWithinGroupSortSpec();
+ int docsToCollect = Grouping.getMax(withinGroupSortSpec.getOffset(), withinGroupSortSpec.getCount(), searcher.maxDoc());
docsToCollect = Math.max(docsToCollect, 1);
for (String field : groupingSpec.getFields()) {
@@ -1367,8 +1368,8 @@ public class QueryComponent extends SearchComponent
new TopGroupsFieldCommand.Builder()
.setQuery(cmd.getQuery())
.setField(schemaField)
- .setGroupSort(groupingSpec.getGroupSort())
- .setSortWithinGroup(groupingSpec.getSortWithinGroup())
+ .setGroupSort(groupingSpec.getGroupSortSpec().getSort())
+ .setSortWithinGroup(withinGroupSortSpec.getSort())
.setFirstPhaseGroups(topGroups)
.setMaxDocPerGroup(docsToCollect)
.setNeedScores(needScores)
@@ -1420,13 +1421,15 @@ public class QueryComponent extends SearchComponent
int limitDefault = cmd.getLen(); // this is normally from "rows"
Grouping grouping =
new Grouping(searcher, result, cmd, cacheSecondPassSearch, maxDocsPercentageToCache, groupingSpec.isMain());
- grouping.setGroupSort(groupingSpec.getGroupSort())
- .setWithinGroupSort(groupingSpec.getSortWithinGroup())
+
+ SortSpec withinGroupSortSpec = groupingSpec.getWithinGroupSortSpec();
+ grouping.setGroupSort(groupingSpec.getGroupSortSpec().getSort())
+ .setWithinGroupSort(withinGroupSortSpec.getSort())
.setDefaultFormat(groupingSpec.getResponseFormat())
.setLimitDefault(limitDefault)
.setDefaultTotalCount(defaultTotalCount)
- .setDocsPerGroupDefault(groupingSpec.getWithinGroupLimit())
- .setGroupOffsetDefault(groupingSpec.getWithinGroupOffset())
+ .setDocsPerGroupDefault(withinGroupSortSpec.getCount())
+ .setGroupOffsetDefault(withinGroupSortSpec.getOffset())
.setGetGroupedDocSet(groupingSpec.isTruncateGroups());
if (groupingSpec.getFields() != null) {
diff --git a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
index 35ef0fe..92f9a66 100644
--- a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
+++ b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
@@ -261,7 +261,7 @@ public class SimpleFacets {
DocSet base = searcher.getDocSet(qlist);
if (rb.grouping() && rb.getGroupingSpec().isTruncateGroups()) {
Grouping grouping = new Grouping(searcher, null, rb.createQueryCommand(), false, 0, false);
- grouping.setWithinGroupSort(rb.getGroupingSpec().getSortWithinGroup());
+ grouping.setWithinGroupSort(rb.getGroupingSpec().getWithinGroupSortSpec().getSort());
if (rb.getGroupingSpec().getFields().length > 0) {
grouping.addFieldCommand(rb.getGroupingSpec().getFields()[0], req);
} else if (rb.getGroupingSpec().getFunctions().length > 0) {
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
index 163c38d..71c34b8 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
@@ -50,9 +50,9 @@ public class SearchGroupShardResponseProcessor implements ShardResponseProcessor
@Override
public void process(ResponseBuilder rb, ShardRequest shardRequest) {
SortSpec groupSortSpec = rb.getGroupingSpec().getGroupSortSpec();
- Sort groupSort = rb.getGroupingSpec().getGroupSort();
+ Sort groupSort = rb.getGroupingSpec().getGroupSortSpec().getSort();
final String[] fields = rb.getGroupingSpec().getFields();
- Sort withinGroupSort = rb.getGroupingSpec().getSortWithinGroup();
+ Sort withinGroupSort = rb.getGroupingSpec().getWithinGroupSortSpec().getSort();
assert withinGroupSort != null;
final Map<String, List<Collection<SearchGroup<BytesRef>>>> commandSearchGroups = new HashMap<>(fields.length, 1.0f);
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
index 92589d6..1525bcf 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
@@ -40,6 +40,7 @@ import org.apache.solr.handler.component.ShardRequest;
import org.apache.solr.handler.component.ShardResponse;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.search.Grouping;
+import org.apache.solr.search.SortSpec;
import org.apache.solr.search.grouping.distributed.ShardResponseProcessor;
import org.apache.solr.search.grouping.distributed.command.QueryCommandResult;
import org.apache.solr.search.grouping.distributed.shardresultserializer.TopGroupsResultTransformer;
@@ -52,10 +53,11 @@ public class TopGroupsShardResponseProcessor implements ShardResponseProcessor {
@Override
@SuppressWarnings("unchecked")
public void process(ResponseBuilder rb, ShardRequest shardRequest) {
- Sort groupSort = rb.getGroupingSpec().getGroupSort();
+ Sort groupSort = rb.getGroupingSpec().getGroupSortSpec().getSort();
String[] fields = rb.getGroupingSpec().getFields();
String[] queries = rb.getGroupingSpec().getQueries();
- Sort withinGroupSort = rb.getGroupingSpec().getSortWithinGroup();
+ SortSpec withinGroupSortSpec = rb.getGroupingSpec().getWithinGroupSortSpec();
+ Sort withinGroupSort = withinGroupSortSpec.getSort();
assert withinGroupSort != null;
boolean simpleOrMain = rb.getGroupingSpec().getResponseFormat() == Grouping.Format.simple ||
@@ -66,18 +68,18 @@ public class TopGroupsShardResponseProcessor implements ShardResponseProcessor {
if (simpleOrMain) {
groupOffsetDefault = 0;
} else {
- groupOffsetDefault = rb.getGroupingSpec().getWithinGroupOffset();
+ groupOffsetDefault = withinGroupSortSpec.getOffset();
}
- int docsPerGroupDefault = rb.getGroupingSpec().getWithinGroupLimit();
+ int docsPerGroupDefault = withinGroupSortSpec.getCount();
Map<String, List<TopGroups<BytesRef>>> commandTopGroups = new HashMap<>();
for (String field : fields) {
- commandTopGroups.put(field, new ArrayList<TopGroups<BytesRef>>());
+ commandTopGroups.put(field, new ArrayList<>());
}
Map<String, List<QueryCommandResult>> commandTopDocs = new HashMap<>();
for (String query : queries) {
- commandTopDocs.put(query, new ArrayList<QueryCommandResult>());
+ commandTopDocs.put(query, new ArrayList<>());
}
TopGroupsResultTransformer serializer = new TopGroupsResultTransformer(rb);
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
index 3327dd7..e736a9b 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
@@ -218,7 +218,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
Object[] convertedSortValues = new Object[fieldDoc.fields.length];
for (int j = 0; j < fieldDoc.fields.length; j++) {
Object sortValue = fieldDoc.fields[j];
- Sort withinGroupSort = rb.getGroupingSpec().getSortWithinGroup();
+ Sort withinGroupSort = rb.getGroupingSpec().getWithinGroupSortSpec().getSort();
SchemaField field = withinGroupSort.getSort()[j].getField() != null ? schema.getFieldOrNull(withinGroupSort.getSort()[j].getField()) : null;
if (field != null) {
FieldType fieldType = field.getType();
@@ -271,7 +271,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
Object[] convertedSortValues = new Object[fieldDoc.fields.length];
for (int j = 0; j < fieldDoc.fields.length; j++) {
Object sortValue = fieldDoc.fields[j];
- Sort groupSort = rb.getGroupingSpec().getGroupSort();
+ Sort groupSort = rb.getGroupingSpec().getGroupSortSpec().getSort();
SchemaField field = groupSort.getSort()[j].getField() != null
? schema.getFieldOrNull(groupSort.getSort()[j].getField()) : null;
convertedSortValues[j] = ShardResultTransformerUtils.marshalSortValue(sortValue, field);
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
index 6757d9c..3ba3470 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
@@ -38,6 +38,7 @@ import org.apache.solr.handler.component.ResponseBuilder;
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.search.SortSpec;
import org.apache.solr.search.grouping.distributed.command.QueryCommandResult;
/**
@@ -54,6 +55,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
@Override
public void transform(Map<String, ?> result, ResponseBuilder rb, SolrDocumentSource solrDocumentSource) {
NamedList<Object> commands = new SimpleOrderedMap<>();
+ SortSpec withinGroupSortSpec = rb.getGroupingSpec().getWithinGroupSortSpec();
for (Map.Entry<String, ?> entry : result.entrySet()) {
Object value = entry.getValue();
if (TopGroups.class.isInstance(value)) {
@@ -90,7 +92,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
if (!Float.isNaN(group.maxScore)) {
docList.setMaxScore(group.maxScore);
}
- docList.setStart(rb.getGroupingSpec().getWithinGroupOffset());
+ docList.setStart(withinGroupSortSpec.getOffset());
retrieveAndAdd(docList, solrDocumentSource, group.scoreDocs);
groupResult.add("doclist", docList);
groups.add(groupResult);
@@ -108,7 +110,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
if (!Float.isNaN(queryCommandResult.getMaxScore())) {
docList.setMaxScore(queryCommandResult.getMaxScore());
}
- docList.setStart(rb.getGroupingSpec().getWithinGroupOffset());
+ docList.setStart(withinGroupSortSpec.getOffset());
retrieveAndAdd(docList, solrDocumentSource, queryCommandResult.getTopDocs().scoreDocs);
command.add("doclist", docList);
commands.add(entry.getKey(), command);
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/MainEndResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/MainEndResultTransformer.java
index 0e03e4e..318fc32 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/MainEndResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/MainEndResultTransformer.java
@@ -53,7 +53,7 @@ public class MainEndResultTransformer implements EndResultTransformer {
@SuppressWarnings("unchecked")
TopGroups<BytesRef> topGroups = (TopGroups<BytesRef>) value;
SolrDocumentList docList = new SolrDocumentList();
- docList.setStart(rb.getGroupingSpec().getOffset());
+ docList.setStart(rb.getGroupingSpec().getGroupSortSpec().getOffset());
docList.setNumFound(rb.totalHitCount);
float maxScore = Float.NEGATIVE_INFINITY;
@@ -77,7 +77,7 @@ public class MainEndResultTransformer implements EndResultTransformer {
SolrDocumentList docList = new SolrDocumentList();
TopDocs topDocs = queryCommandResult.getTopDocs();
- docList.setStart(rb.getGroupingSpec().getOffset());
+ docList.setStart(rb.getGroupingSpec().getGroupSortSpec().getOffset());
docList.setNumFound(topDocs.totalHits.value);
if (!Float.isNaN(queryCommandResult.getMaxScore())) {
docList.setMaxScore(queryCommandResult.getMaxScore());
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
index 01adb45..0723136 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
@@ -49,7 +49,7 @@ public class SimpleEndResultTransformer implements EndResultTransformer {
command.add("ngroups", topGroups.totalGroupCount);
}
SolrDocumentList docList = new SolrDocumentList();
- docList.setStart(rb.getGroupingSpec().getOffset());
+ docList.setStart(rb.getGroupingSpec().getGroupSortSpec().getOffset());
docList.setNumFound(topGroups.totalHitCount);
float maxScore = Float.NEGATIVE_INFINITY;
@@ -76,7 +76,7 @@ public class SimpleEndResultTransformer implements EndResultTransformer {
TopDocs topDocs = queryCommandResult.getTopDocs();
SolrDocumentList docList = new SolrDocumentList();
- docList.setStart(rb.getGroupingSpec().getOffset());
+ docList.setStart(rb.getGroupingSpec().getGroupSortSpec().getOffset());
docList.setNumFound(topDocs.totalHits.value);
if (!Float.isNaN(queryCommandResult.getMaxScore())) {