lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilaygit <...@git.apache.org>
Subject [GitHub] lucene-solr pull request #300: SOLR-11831: Skip second grouping step if grou...
Date Sat, 12 May 2018 04:47:18 GMT
Github user ilaygit commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/300#discussion_r187764203
  
    --- Diff: solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java ---
    @@ -233,6 +233,41 @@ public void prepare(ResponseBuilder rb) throws IOException
         }
       }
     
    +  private boolean allowSkipSecondGroupingStep(final GroupingSpecification groupingSpec,
final boolean isReranking ) {
    +    // Only possible if we only want one doc per group
    +    if (groupingSpec.getGroupLimit() != 1) {
    +        logger.error("group.skip.second.step=true is not compatible with group.limit
== " + groupingSpec.getGroupLimit() );
    +        return false;
    +    }
    +
    +    // Within group sort must be the same as group sort because if we skip second step
no sorting within group will be done.
    +    if (groupingSpec.getSortWithinGroup() !=  groupingSpec.getGroupSort()) {
    +        logger.error("group.skip.second.step=true is not compatible with group.sort !=
sort");
    +        return false;
    +    }
    +
    +    boolean byRelevanceOnly = false;
    +    SortField[] sortFields = groupingSpec.getGroupSort().getSort();
    +
    +    if(sortFields != null && sortFields.length == 1 && sortFields[0]
!= null && sortFields[0].getComparator() instanceof FieldComparator.RelevanceComparator)
{
    +      byRelevanceOnly = true;
    +    }
    +
    +    // TODO: At the moment the optimization is only supported when we are sorting by
relevance only
    +    if(!byRelevanceOnly) {
    +        logger.error("group.skip.second.step=true is not compatible with sort= " + (sortFields
!= null? sortFields.toString() : null));
    +        return false;
    +    }
    +
    +    // TODO: At the moment the optimization does not support reranking
    +    if(isReranking) {
    --- End diff --
    
    Will ltr not benefit from this optimization?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message