从嵌入式 ElasticSearch 迁移到 spring-data-elasticsearch 4.0.6.RELEASE
Migration from Embedded ElasticSearch to spring-data-elasticsearch 4.0.6.RELEASE
我正在做一个小项目,需要迁移到更新的 Spring 版本。
我在修复此查询时遇到问题:
SearchResponse response = new SearchRequestBuilder(node.client())
.setIndices(INDEX)
.setTypes(TYPE_MYCLASS)
.setFrom(page * PAGE_SIZE)
.setSize(PAGE_SIZE)
.setQuery(
new FilteredQueryBuilder(
new MatchAllQueryBuilder()
, new TermFilterBuilder("mostRecent", true)
)
)
.get();
SearchHit[] hits = response.getHits().getHits();
我已经将 DTO-Class (TYPE_MYCLASS) 迁移到 Spring-数据文档注释
@Mapping(
mappingPath = "es/mappings/myclass.json")
@Document(
indexName = ElasticsearchService.INDEX
, type = ElasticsearchService.TYPE_MYCLASS)
public class MyClass {
public Boolean mostRecent;
// other Fields
}
希望高手能帮帮我。
当您使用 spring-data 时,您通常会定义存储库来查询数据。
它还支持简单的查询。
看看这个:
https://www.baeldung.com/spring-data-elasticsearch-tutorial
这是我最终所做的,类似于我在另一条评论中提供的 the link 到 spring 文档。
NativeSearchQuery query = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchAllQuery())
.withFilter(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("mostRecent", true)))
.build();
SearchHitsIterator<Produkt> stream = template.searchForStream(query, MyClass.class);
不幸的是,使用分页以错误消息告终。希望这会在未来的某个版本中得到修复。
我正在做一个小项目,需要迁移到更新的 Spring 版本。
我在修复此查询时遇到问题:
SearchResponse response = new SearchRequestBuilder(node.client())
.setIndices(INDEX)
.setTypes(TYPE_MYCLASS)
.setFrom(page * PAGE_SIZE)
.setSize(PAGE_SIZE)
.setQuery(
new FilteredQueryBuilder(
new MatchAllQueryBuilder()
, new TermFilterBuilder("mostRecent", true)
)
)
.get();
SearchHit[] hits = response.getHits().getHits();
我已经将 DTO-Class (TYPE_MYCLASS) 迁移到 Spring-数据文档注释
@Mapping(
mappingPath = "es/mappings/myclass.json")
@Document(
indexName = ElasticsearchService.INDEX
, type = ElasticsearchService.TYPE_MYCLASS)
public class MyClass {
public Boolean mostRecent;
// other Fields
}
希望高手能帮帮我。
当您使用 spring-data 时,您通常会定义存储库来查询数据。 它还支持简单的查询。
看看这个: https://www.baeldung.com/spring-data-elasticsearch-tutorial
这是我最终所做的,类似于我在另一条评论中提供的 the link 到 spring 文档。
NativeSearchQuery query = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchAllQuery())
.withFilter(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("mostRecent", true)))
.build();
SearchHitsIterator<Produkt> stream = template.searchForStream(query, MyClass.class);
不幸的是,使用分页以错误消息告终。希望这会在未来的某个版本中得到修复。