When using High Level Rest Client Java API to produce search query, using AggregationBuilders.topHits("th").sort("_score", SortOrder.DESC) caused query to contain duplicate sort clauses.
This commit is contained in:
parent
eb1639c5fc
commit
3a20ff7e86
|
@ -237,8 +237,9 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder<TopHit
|
|||
}
|
||||
if (name.equals(ScoreSortBuilder.NAME)) {
|
||||
sort(SortBuilders.scoreSort().order(order));
|
||||
}
|
||||
} else {
|
||||
sort(SortBuilders.fieldSort(name).order(order));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -254,8 +255,9 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder<TopHit
|
|||
}
|
||||
if (name.equals(ScoreSortBuilder.NAME)) {
|
||||
sort(SortBuilders.scoreSort());
|
||||
}
|
||||
} else {
|
||||
sort(SortBuilders.fieldSort(name));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilder;
|
|||
import org.elasticsearch.search.aggregations.AggregationBuilders;
|
||||
import org.elasticsearch.search.aggregations.AggregatorTestCase;
|
||||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||
import org.elasticsearch.search.aggregations.metrics.TopHits;
|
||||
import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
|
||||
|
@ -207,4 +206,10 @@ public class TopHitsAggregatorTests extends AggregatorTestCase {
|
|||
reader.close();
|
||||
directory.close();
|
||||
}
|
||||
|
||||
public void testSortByScore() throws Exception {
|
||||
// just check that it does not fail with exceptions
|
||||
testCase(new MatchAllDocsQuery(), topHits("_name").sort("_score", SortOrder.DESC));
|
||||
testCase(new MatchAllDocsQuery(), topHits("_name").sort("_score"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue