From 13761b073a252fb2371ddb883ded2f296587894e Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Sat, 25 Jan 2020 18:54:51 +0100 Subject: [PATCH] DATAES-449 - Pass route parameter to created search request. Original PR: #383 --- .../data/elasticsearch/core/RequestFactory.java | 8 ++++++++ .../elasticsearch/core/RequestFactoryTest.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java b/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java index 2af47e775..021673938 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java @@ -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; } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTest.java b/src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTest.java index ddd144944..693f8ad0a 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTest.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTest.java @@ -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;