Make Java Count API compatible with profiling

This commit is contained in:
Zachary Tong 2015-10-20 12:11:32 -04:00
parent cbfba74e16
commit 4616a25aff
2 changed files with 24 additions and 0 deletions

View file

@ -70,6 +70,8 @@ public class CountRequest extends BroadcastRequest<CountRequest> {
private int terminateAfter = DEFAULT_TERMINATE_AFTER; private int terminateAfter = DEFAULT_TERMINATE_AFTER;
private Boolean profile;
/** /**
* Constructs a new count request against the provided indices. No indices provided means it will * Constructs a new count request against the provided indices. No indices provided means it will
* run against all indices. * run against all indices.
@ -218,6 +220,23 @@ public class CountRequest extends BroadcastRequest<CountRequest> {
return this.terminateAfter; return this.terminateAfter;
} }
/**
* Sets if this query should be profiled or not
*
* @param profile True if the query should be profiled
*/
public CountRequest profile(Boolean profile) {
this.profile = profile;
return this;
}
/**
* Returns if profiling is enabled for this query
*/
public Boolean profile() {
return this.profile;
}
@Override @Override
public void readFrom(StreamInput in) throws IOException { public void readFrom(StreamInput in) throws IOException {
throw new UnsupportedOperationException("CountRequest doesn't support being sent over the wire, just a shortcut to the search api"); throw new UnsupportedOperationException("CountRequest doesn't support being sent over the wire, just a shortcut to the search api");
@ -246,6 +265,7 @@ public class CountRequest extends BroadcastRequest<CountRequest> {
searchRequest.routing(routing()); searchRequest.routing(routing());
searchRequest.preference(preference()); searchRequest.preference(preference());
searchRequest.source(source()); searchRequest.source(source());
searchRequest.profile(profile());
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.size(0); searchSourceBuilder.size(0);
if (minScore() != DEFAULT_MIN_SCORE) { if (minScore() != DEFAULT_MIN_SCORE) {

View file

@ -65,6 +65,9 @@ public class CountRequestTests extends ESTestCase {
if (randomBoolean()) { if (randomBoolean()) {
countRequest.terminateAfter(randomIntBetween(1, 1000)); countRequest.terminateAfter(randomIntBetween(1, 1000));
} }
if (randomBoolean()) {
countRequest.profile(randomBoolean());
}
SearchRequest searchRequest = countRequest.toSearchRequest(); SearchRequest searchRequest = countRequest.toSearchRequest();
assertThat(searchRequest.indices(), equalTo(countRequest.indices())); assertThat(searchRequest.indices(), equalTo(countRequest.indices()));
@ -72,6 +75,7 @@ public class CountRequestTests extends ESTestCase {
assertThat(searchRequest.types(), equalTo(countRequest.types())); assertThat(searchRequest.types(), equalTo(countRequest.types()));
assertThat(searchRequest.routing(), equalTo(countRequest.routing())); assertThat(searchRequest.routing(), equalTo(countRequest.routing()));
assertThat(searchRequest.preference(), equalTo(countRequest.preference())); assertThat(searchRequest.preference(), equalTo(countRequest.preference()));
assertThat(searchRequest.profile(), equalTo(countRequest.profile()));
if (countRequest.source() == null) { if (countRequest.source() == null) {
assertThat(searchRequest.source(), nullValue()); assertThat(searchRequest.source(), nullValue());