Fixed parsing of `track_scores` in `RestSearchAction`

Closes #2986
This commit is contained in:
Florian Schilling 2013-05-08 12:42:30 +02:00
parent 3c995d5dcc
commit 19fab7cd0e
2 changed files with 33 additions and 1 deletions

View File

@ -226,6 +226,13 @@ public class RestSearchAction extends BaseRestHandler {
}
}
if(request.hasParam("track_scores")) {
if (searchSourceBuilder == null) {
searchSourceBuilder = new SearchSourceBuilder();
}
searchSourceBuilder.trackScores(request.paramAsBoolean("track_scores", false));
}
String sSorts = request.param("sort");
if (sSorts != null) {
if (searchSourceBuilder == null) {

View File

@ -167,7 +167,32 @@ public class SimpleSortTests extends AbstractNodesTests {
assertThat(searchResponse.getHits().getAt(1).getId(), equalTo("2"));
assertThat(searchResponse.getHits().getAt(0).getId(), equalTo("1"));
}
@Test
public void testIssue2986() {
try {
client.admin().indices().prepareDelete("test").execute().actionGet();
} catch (Exception e) {
// ignore
}
client.admin().indices().prepareCreate("test").execute().actionGet();
client.prepareIndex("test", "post", "1").setSource("{\"field1\":\"value1\"}").execute().actionGet();
client.prepareIndex("test", "post", "2").setSource("{\"field1\":\"value2\"}").execute().actionGet();
client.prepareIndex("test", "post", "3").setSource("{\"field1\":\"value3\"}").execute().actionGet();
client.admin().indices().prepareRefresh("test").execute().actionGet();
SearchResponse result = client.prepareSearch("test").setQuery(matchAllQuery()).setTrackScores(true).addSort("field1", SortOrder.ASC).execute().actionGet();
for (SearchHit hit : result.getHits()) {
assert !Float.isNaN(hit.getScore());
}
client.admin().indices().prepareDelete("test").execute().actionGet();
}
@Test
public void testIssue2991() {
for (int i = 1; i < 4; i++) {