Skip to content

Commit 13761b0

Browse files
authored
DATAES-449 - Pass route parameter to created search request.
Original PR: spring-projects#383
1 parent 37f1585 commit 13761b0

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,10 @@ private SearchRequest prepareSearchRequest(Query query, @Nullable Class<?> clazz
560560
sourceBuilder.trackTotalHits(query.getTrackTotalHits());
561561
}
562562

563+
if (StringUtils.hasLength(query.getRoute())) {
564+
request.routing(query.getRoute());
565+
}
566+
563567
request.source(sourceBuilder);
564568
return request;
565569
}
@@ -726,6 +730,10 @@ private SearchRequestBuilder prepareSearchRequestBuilder(Query query, Client cli
726730
searchRequestBuilder.setTrackTotalHits(query.getTrackTotalHits());
727731
}
728732

733+
if (StringUtils.hasLength(query.getRoute())) {
734+
searchRequestBuilder.setRouting(query.getRoute());
735+
}
736+
729737
return searchRequestBuilder;
730738
}
731739

src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
*/
1616
package org.springframework.data.elasticsearch.core;
1717

18+
import static org.assertj.core.api.Assertions.*;
1819
import static org.skyscreamer.jsonassert.JSONAssert.*;
1920

2021
import java.util.Collections;
2122

23+
import org.elasticsearch.action.search.SearchRequest;
2224
import org.json.JSONException;
2325
import org.junit.jupiter.api.BeforeAll;
2426
import org.junit.jupiter.api.Test;
@@ -103,6 +105,18 @@ void shouldBuildSearchWithGeoSortSort() throws JSONException {
103105
assertEquals(expected, searchRequest, false);
104106
}
105107

108+
@Test // DATAES-449
109+
void shouldAddRouting() throws JSONException {
110+
String route = "route66";
111+
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
112+
query.setRoute(route);
113+
converter.updateQuery(query, Person.class);
114+
115+
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
116+
117+
assertThat(searchRequest.routing()).isEqualTo(route);
118+
}
119+
106120
static class Person {
107121
@Id String id;
108122
@Field(name = "last-name") String lastName;

0 commit comments

Comments
 (0)