DATAES-595 - Support for setting preference parameter in query.
Original PR: #288
This commit is contained in:
committed by
Peter-Josef Meisch
parent
7ea0a43162
commit
40ea40a763
+49
@@ -106,6 +106,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
* @author Ivan Greene
|
||||
* @author Dmitriy Yakovlev
|
||||
* @author Peter-Josef Meisch
|
||||
* @author Farid Azaza
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
|
||||
@@ -330,6 +331,54 @@ public class ElasticsearchTemplateTests {
|
||||
assertThat(sampleEntities.getTotalElements()).isGreaterThanOrEqualTo(1);
|
||||
}
|
||||
|
||||
@Test // DATAES-595
|
||||
public void shouldReturnPageUsingLocalPreferenceForGivenSearchQuery() {
|
||||
|
||||
// given
|
||||
String documentId = randomNumeric(5);
|
||||
SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("some message")
|
||||
.version(System.currentTimeMillis()).build();
|
||||
|
||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||
|
||||
elasticsearchTemplate.index(indexQuery);
|
||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||
|
||||
SearchQuery searchQueryWithValidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||
.withPreference("_local").build();
|
||||
|
||||
// when
|
||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQueryWithValidPreference,
|
||||
SampleEntity.class);
|
||||
|
||||
// then
|
||||
assertThat(sampleEntities).isNotNull();
|
||||
assertThat(sampleEntities.getTotalElements()).isGreaterThanOrEqualTo(1);
|
||||
}
|
||||
|
||||
@Test(expected = Exception.class) // DATAES-595
|
||||
public void shouldThrowExceptionWhenInvalidPreferenceForSearchQuery() {
|
||||
|
||||
// given
|
||||
String documentId = randomNumeric(5);
|
||||
SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("some message")
|
||||
.version(System.currentTimeMillis()).build();
|
||||
|
||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||
|
||||
elasticsearchTemplate.index(indexQuery);
|
||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||
|
||||
SearchQuery searchQueryWithInvalidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||
.withPreference("_only_nodes:oops").build();
|
||||
|
||||
// when
|
||||
elasticsearchTemplate.queryForPage(searchQueryWithInvalidPreference, SampleEntity.class);
|
||||
|
||||
// then Throw IllegalArgumentException in case of ElasticsearchTemplate and ElasticsearchStatusException in case of
|
||||
// ElasticsearchRestTemplate
|
||||
}
|
||||
|
||||
@Test // DATAES-422 - Add support for IndicesOptions in search queries
|
||||
public void shouldPassIndicesOptionsForGivenSearchQuery() {
|
||||
|
||||
|
||||
+39
@@ -39,6 +39,7 @@ import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.elasticsearch.ElasticsearchStatusException;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
@@ -75,6 +76,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @author Peter-Josef Meisch
|
||||
* @author Farid Azaza
|
||||
* @currentRead Golden Fool - Robin Hobb
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@@ -389,6 +391,43 @@ public class ReactiveElasticsearchTemplateTests {
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@Test // DATAES-595
|
||||
public void shouldReturnListUsingLocalPreferenceForGivenCriteria() {
|
||||
|
||||
SampleEntity sampleEntity1 = randomEntity("test message");
|
||||
SampleEntity sampleEntity2 = randomEntity("test test");
|
||||
SampleEntity sampleEntity3 = randomEntity("some message");
|
||||
|
||||
index(sampleEntity1, sampleEntity2, sampleEntity3);
|
||||
|
||||
CriteriaQuery queryWithValidPreference = new CriteriaQuery(
|
||||
new Criteria("message").contains("some").and("message").contains("message"));
|
||||
queryWithValidPreference.setPreference("_local");
|
||||
|
||||
template.find(queryWithValidPreference, SampleEntity.class) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(sampleEntity3) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@Test // DATAES-595
|
||||
public void shouldThrowElasticsearchStatusExceptionWhenInvalidPreferenceForGivenCriteria() {
|
||||
|
||||
SampleEntity sampleEntity1 = randomEntity("test message");
|
||||
SampleEntity sampleEntity2 = randomEntity("test test");
|
||||
SampleEntity sampleEntity3 = randomEntity("some message");
|
||||
|
||||
index(sampleEntity1, sampleEntity2, sampleEntity3);
|
||||
|
||||
CriteriaQuery queryWithInvalidPreference = new CriteriaQuery(
|
||||
new Criteria("message").contains("some").and("message").contains("message"));
|
||||
queryWithInvalidPreference.setPreference("_only_nodes:oops");
|
||||
|
||||
template.find(queryWithInvalidPreference, SampleEntity.class) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectError(ElasticsearchStatusException.class).verify();
|
||||
}
|
||||
|
||||
@Test // DATAES-504
|
||||
public void shouldReturnProjectedTargetEntity() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user