我正在将Elasticsearch从6升级到7。这些是我们已经升级的依赖项
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>4.4.2</version>
</dependency>
通过这次升级,我发现搜索API已经从ElasticSearch库中删除。
我们在应用程序中的搜索查询是
Page<class1> c1 = ElasticSearchRepository.search(queryStringQuery(searchable).fields(fields).escape(false).analyzeWildcard(true), pageable);
Page<class1> c1 = ElasticsearchRepository.search(BoolQueryBuilder, pageable);
我计划更改它们并使用elasticsearchTemplate,如下所示
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder()
.withQuery(queryStringQuery(searchable).fields(fields).escape(false).analyzeWildcard(true)).withPageable(pageable);
NativeSearchQuery nativeSearchQuery = queryBuilder.build();
org.springframework.data.elasticsearch.core.SearchHits<class1> accesscodeSearchHits = elasticsearchTemplate.search(nativeSearchQuery, class1.class);
我需要帮助以获取搜索结果Page<class1>
而不是SearchHits。不确定如何获取页面作为搜索API的结果。我在elasticsearchOperations类中没有看到queryForPage(searchQuery,getEntityClass())方法。
1条答案
按热度按时间kgqe7b3p1#
您可以使用
SearchHitSupport
将SearchHits
转换为SearchPage
。假设
SearchPage
扩展了Page
。