elasticsearch Elastcisearch搜索查询和分页

wecizke3  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(200)

我正在将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())方法。

kgqe7b3p

kgqe7b3p1#

您可以使用SearchHitSupportSearchHits转换为SearchPage
假设SearchPage扩展了Page

SearchPage<Class1> searchPage = SearchHitSupport.searchPageFor(searchHits, pageable);

相关问题