Skip to content

Commit

Permalink
Multi Search API: Allow to set search_type on REST endpoint URI to ap…
Browse files Browse the repository at this point in the history
…ply to all search requests, closes #2023.
  • Loading branch information
kimchy committed Jun 13, 2012
1 parent cf1fd26 commit 133bd72
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
Expand Up @@ -62,7 +62,8 @@ public MultiSearchRequest add(SearchRequest request) {
return this;
}

public MultiSearchRequest add(byte[] data, int from, int length, boolean contentUnsafe, @Nullable String[] indices, @Nullable String[] types) throws Exception {
public MultiSearchRequest add(byte[] data, int from, int length, boolean contentUnsafe,
@Nullable String[] indices, @Nullable String[] types, @Nullable String searchType) throws Exception {
XContent xContent = XContentFactory.xContent(data, from, length);
byte marker = xContent.streamSeparator();
while (true) {
Expand All @@ -80,6 +81,7 @@ public MultiSearchRequest add(byte[] data, int from, int length, boolean content
if (types != null && types.length > 0) {
searchRequest.types(types);
}
searchRequest.searchType(searchType);

// now parse the action
if (nextMarker - from > 0) {
Expand Down
Expand Up @@ -62,7 +62,8 @@ public void handleRequest(final RestRequest request, final RestChannel channel)
String[] types = RestActions.splitTypes(request.param("type"));

try {
multiSearchRequest.add(request.contentByteArray(), request.contentByteArrayOffset(), request.contentLength(), request.contentUnsafe(), indices, types);
multiSearchRequest.add(request.contentByteArray(), request.contentByteArrayOffset(), request.contentLength(), request.contentUnsafe(),
indices, types, request.param("search_type"));
} catch (Exception e) {
try {
XContentBuilder builder = restContentBuilder(request);
Expand Down
Expand Up @@ -36,7 +36,7 @@ public class MultiSearchRequestTests {
@Test
public void simpleAdd() throws Exception {
byte[] data = Streams.copyToBytesFromClasspath("/org/elasticsearch/test/unit/action/search/simple-msearch1.json");
MultiSearchRequest request = new MultiSearchRequest().add(data, 0, data.length, false, null, null);
MultiSearchRequest request = new MultiSearchRequest().add(data, 0, data.length, false, null, null, null);
assertThat(request.requests().size(), equalTo(5));
assertThat(request.requests().get(0).indices()[0], equalTo("test"));
assertThat(request.requests().get(0).types().length, equalTo(0));
Expand All @@ -54,7 +54,7 @@ public void simpleAdd() throws Exception {
@Test
public void simpleAdd2() throws Exception {
byte[] data = Streams.copyToBytesFromClasspath("/org/elasticsearch/test/unit/action/search/simple-msearch2.json");
MultiSearchRequest request = new MultiSearchRequest().add(data, 0, data.length, false, null, null);
MultiSearchRequest request = new MultiSearchRequest().add(data, 0, data.length, false, null, null, null);
assertThat(request.requests().size(), equalTo(5));
assertThat(request.requests().get(0).indices()[0], equalTo("test"));
assertThat(request.requests().get(0).types().length, equalTo(0));
Expand Down

0 comments on commit 133bd72

Please sign in to comment.