diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/DocumentAdapters.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/DocumentAdapters.java index 78ae3b0d5..4a2d5cf33 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/DocumentAdapters.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/DocumentAdapters.java @@ -138,7 +138,7 @@ final class DocumentAdapters { document.setPrimaryTerm(hit.primaryTerm() != null && hit.primaryTerm() > 0 ? hit.primaryTerm() : 0); float score = hit.score() != null ? hit.score().floatValue() : Float.NaN; - return new SearchDocumentAdapter(document, score, hit.sort().stream().map(TypeUtils::toString).toArray(), + return new SearchDocumentAdapter(document, score, hit.sort().stream().map(TypeUtils::toObject).toArray(), documentFields, highlightFields, innerHits, nestedMetaData, explanation, matchedQueries, hit.routing()); } @@ -237,3 +237,4 @@ final class DocumentAdapters { .collect(Collectors.toList()); } } +🚝 diff --git a/src/test/java/org/springframework/data/elasticsearch/core/query/sort/NestedSortIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/query/sort/NestedSortIntegrationTests.java index dbb90fc59..449545f4e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/query/sort/NestedSortIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/query/sort/NestedSortIntegrationTests.java @@ -103,27 +103,27 @@ public abstract class NestedSortIntegrationTests { assertThat(searchHits.getSearchHit(0).getContent().id).isEqualTo(francisFordCoppola.id); var sortValues = searchHits.getSearchHit(0).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1924"); + assertThat(sortValues.get(0)).isEqualTo(1924L); assertThat(searchHits.getSearchHit(1).getContent().id).isEqualTo(stanleyKubrik.id); sortValues = searchHits.getSearchHit(1).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1937"); + assertThat(sortValues.get(0)).isEqualTo(1937L); } @Test // #1784 @DisplayName("should sort directors by year of birth of actor in their movies descending") void shouldSortDirectorsByYearOfBirthOfActorInTheirMoviesDescending() { -var order = new org.springframework.data.elasticsearch.core.query.Order(Sort.Direction.DESC, - "movies.actors.yearOfBirth") // - .withNested( // - Nested.builder("movies") // - .withNested(Nested.builder("movies.actors") // - .build()) // - .build()); + var order = new org.springframework.data.elasticsearch.core.query.Order(Sort.Direction.DESC, + "movies.actors.yearOfBirth") // + .withNested( // + Nested.builder("movies") // + .withNested(Nested.builder("movies.actors") // + .build()) // + .build()); -var query = Query.findAll().addSort(Sort.by(order)); + var query = Query.findAll().addSort(Sort.by(order)); var searchHits = operations.search(query, Director.class); @@ -132,32 +132,32 @@ var query = Query.findAll().addSort(Sort.by(order)); assertThat(searchHits.getSearchHit(0).getContent().id).isEqualTo(stanleyKubrik.id); var sortValues = searchHits.getSearchHit(0).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1959"); + assertThat(sortValues.get(0)).isEqualTo(1959L); assertThat(searchHits.getSearchHit(1).getContent().id).isEqualTo(francisFordCoppola.id); sortValues = searchHits.getSearchHit(1).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1946"); + assertThat(sortValues.get(0)).isEqualTo(1946L); } @Test // #1784 @DisplayName("should sort directors by year of birth of male actor in their movies descending") void shouldSortDirectorsByYearOfBirthOfMaleActorInTheirMoviesDescending() { -var filter = StringQuery.builder(""" - { "term": {"movies.actors.sex": "m"} } - """).build(); -var order = new org.springframework.data.elasticsearch.core.query.Order(Sort.Direction.DESC, - "movies.actors.yearOfBirth") // - .withNested( // - Nested.builder("movies") // - .withNested( // - Nested.builder("movies.actors") // - .withFilter(filter) // - .build()) // - .build()); + var filter = StringQuery.builder(""" + { "term": {"movies.actors.sex": "m"} } + """).build(); + var order = new org.springframework.data.elasticsearch.core.query.Order(Sort.Direction.DESC, + "movies.actors.yearOfBirth") // + .withNested( // + Nested.builder("movies") // + .withNested( // + Nested.builder("movies.actors") // + .withFilter(filter) // + .build()) // + .build()); -var query = Query.findAll().addSort(Sort.by(order)); + var query = Query.findAll().addSort(Sort.by(order)); var searchHits = operations.search(query, Director.class); @@ -166,12 +166,12 @@ var query = Query.findAll().addSort(Sort.by(order)); assertThat(searchHits.getSearchHit(0).getContent().id).isEqualTo(stanleyKubrik.id); var sortValues = searchHits.getSearchHit(0).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1959"); + assertThat(sortValues.get(0)).isEqualTo(1959L); assertThat(searchHits.getSearchHit(1).getContent().id).isEqualTo(francisFordCoppola.id); sortValues = searchHits.getSearchHit(1).getSortValues(); assertThat(sortValues).hasSize(1); - assertThat(sortValues.get(0)).isEqualTo("1940"); + assertThat(sortValues.get(0)).isEqualTo(1940L); } @Document(indexName = "#{@indexNameProvider.indexName()}")