es的scroll api使用
来源:互联网 发布:优化直通车投放时间 编辑:程序博客网 时间:2024/05/22 03:14
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("app",app); SearchQuery query = new NativeSearchQueryBuilder() .withIndices(index) .withTypes(type) .withQuery(matchQueryBuilder) .withPageable(page) .build(); long scollTimeInMillis = 1000; String scrollId = elasticsearchTemplate.scan(query, scollTimeInMillis, false); boolean hasRecords = true; long totalCount = 0; while (hasRecords) { Page<LogDetail> page = elasticsearchTemplate.scroll(scrollId, scollTimeInMillis, LogDetail.class); if (page.hasContent()) { LOGGER.info("page number:{}",page.getNumberOfElements()); totalCount += page.getNumberOfElements(); } else { hasRecords = false; } } //clear scroll elasticsearchTemplate.clearScroll(scrollId);
public FacetedPageWithScore searchResumeByConditionForPage(final SearchQuery searchQuery) {
return elasticsearchTemplate.query(searchQuery, new ResultsExtractor<FacetedPageWithScore>() {
@Override
public FacetedPageWithScore extract(SearchResponse response) {
final List<SearchResumeWithScore> scoreResumeList = new ArrayList<>();
ResultsMapper mapper = new DefaultResultMapper(elasticsearchTemplate.getElasticsearchConverter().getMappingContext());
FacetedPage<SearchResume> searchResult = mapper.mapResults(response, SearchResume.class, searchQuery.getPageable());
List<SearchResume> content = searchResult.getContent();
Map<Long, SearchResume> mapSearchResume = new HashMap<>();
for (SearchResume searchResume: content){
mapSearchResume.put(searchResume.getId(), searchResume);
}
SearchHits searchHits = response.getHits();
for(SearchHit searchhit:searchHits){
Long id = (Long) searchhit.getSource().get("id");
SearchResumeWithScore scoreResume = new SearchResumeWithScore();
scoreResume.setSearchResume(mapSearchResume.get(id));
// scoreResume.setScore(searchhit.getScore()) 会出现NaN异常
try{
float score = searchhit.getScore();
if(score > 0){
scoreResume.setScore(score);
}else{
scoreResume.setScore(0.0f);
}
}catch(Exception e){
scoreResume.setScore(0.0f);
}
scoreResumeList.add(scoreResume);
}
FacetedPageWithScore facetedPageWithScore = new FacetedPageWithScore(scoreResumeList, searchResult.getTotalPages());
return facetedPageWithScore;
}
});
}
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("app",app); SearchQuery query = new NativeSearchQueryBuilder() .withIndices(index) .withTypes(type) .withQuery(matchQueryBuilder) .withPageable(page) .build(); long scollTimeInMillis = 1000; String scrollId = elasticsearchTemplate.scan(query, scollTimeInMillis, false); boolean hasRecords = true; long totalCount = 0; while (hasRecords) { Page<LogDetail> page = elasticsearchTemplate.scroll(scrollId, scollTimeInMillis, LogDetail.class); if (page.hasContent()) { LOGGER.info("page number:{}",page.getNumberOfElements()); totalCount += page.getNumberOfElements(); } else { hasRecords = false; } } //clear scroll elasticsearchTemplate.clearScroll(scrollId);
阅读全文
0 0
- es的scroll api使用
- ES中的pyelasticsearch API的使用问题
- Scroll bar 的使用
- Scroll Panes的使用
- es scroll 查询
- Elasticsearch Java API 的使用(8)—Scroll (游标)API详解
- OpenGL ES 的 EGL API
- es scroll size 设置问题
- elasticsearch java api使用,es java封装
- es搜索引擎的使用
- better-scroll api
- NGUI 3.0 Scroll View的使用
- android Scroll及GestureDetector的简单使用
- 小程序中scroll-view的使用
- Vue中better-scroll插件的使用
- better-scroll滑动插件的使用
- OpenGL ES的API简单分析
- es中的scan and scroll搜索
- Maven的排除依赖、归类依赖、优化依赖
- 置换元素
- WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手
- 《非暴力沟通》读书感悟
- Nginx静态资源服务器简单配置
- es的scroll api使用
- CET-6 分频周计划生词筛选(Week 1)
- Search a 2D Matrix II
- css3text-transform,用来控制文本的大小写属性续
- 意外的offer——上海汉得信息技术股份有限公司
- [每日心学]阳明辩花
- Qt之自定义界面添加最小化、关闭按钮、添加背景
- CET-6 分频周计划生词筛选(Week 2)
- CET-6 分频周计划生词筛选(Week 3)