DATAES-449 - Pass route parameter to created search request.

Original PR: #383
This commit is contained in:
Peter-Josef Meisch 2020-01-25 18:54:51 +01:00 committed by GitHub
parent 37f15853c0
commit 13761b073a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View File

@ -560,6 +560,10 @@ class RequestFactory {
sourceBuilder.trackTotalHits(query.getTrackTotalHits());
}
if (StringUtils.hasLength(query.getRoute())) {
request.routing(query.getRoute());
}
request.source(sourceBuilder);
return request;
}
@ -726,6 +730,10 @@ class RequestFactory {
searchRequestBuilder.setTrackTotalHits(query.getTrackTotalHits());
}
if (StringUtils.hasLength(query.getRoute())) {
searchRequestBuilder.setRouting(query.getRoute());
}
return searchRequestBuilder;
}

View File

@ -15,10 +15,12 @@
*/
package org.springframework.data.elasticsearch.core;
import static org.assertj.core.api.Assertions.*;
import static org.skyscreamer.jsonassert.JSONAssert.*;
import java.util.Collections;
import org.elasticsearch.action.search.SearchRequest;
import org.json.JSONException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -103,6 +105,18 @@ class RequestFactoryTest {
assertEquals(expected, searchRequest, false);
}
@Test // DATAES-449
void shouldAddRouting() throws JSONException {
String route = "route66";
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
query.setRoute(route);
converter.updateQuery(query, Person.class);
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
assertThat(searchRequest.routing()).isEqualTo(route);
}
static class Person {
@Id String id;
@Field(name = "last-name") String lastName;