|
@@ -81,86 +81,86 @@ public class EsLogic {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public List<CommonListES> list(List<String> websitNumbers,String workerNumber,String comId){
|
|
|
- //标题
|
|
|
- BoolQueryBuilder titleQueryBuilder = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("type", "1"));
|
|
|
- if(StringUtils.isNotEmpty(comId)){
|
|
|
- titleQueryBuilder.must(QueryBuilders.termQuery("comListId", comId));
|
|
|
- }
|
|
|
- //内容
|
|
|
- BoolQueryBuilder must = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("type", "2"));
|
|
|
- if(StringUtils.isNotEmpty(comId)){
|
|
|
- must.must(QueryBuilders.termQuery("comListId", comId));
|
|
|
- }
|
|
|
- if(StringUtils.isNotEmpty(workerNumber)){
|
|
|
- must.must(QueryBuilders.matchPhraseQuery("workerNumber", workerNumber));
|
|
|
- }
|
|
|
- if(CollectionUtils.isNotEmpty(websitNumbers)){
|
|
|
- must.filter(QueryBuilders.termsQuery("websitNumber",websitNumbers));
|
|
|
- }
|
|
|
- NativeSearchQuery titleBuild = new NativeSearchQueryBuilder().withQuery(titleQueryBuilder).build();
|
|
|
- NativeSearchQuery dataBuild = new NativeSearchQueryBuilder()
|
|
|
- .withQuery(must)
|
|
|
- .withPageable(PageRequest.of(0, 10000))
|
|
|
- .build();
|
|
|
-
|
|
|
- NativeSearchQuery dataBuild2 = new NativeSearchQueryBuilder()
|
|
|
- .withQuery(must)
|
|
|
- .withPageable(PageRequest.of(1, 10000))
|
|
|
- .build();
|
|
|
- NativeSearchQuery dataBuild3 = new NativeSearchQueryBuilder()
|
|
|
- .withQuery(must)
|
|
|
- .withPageable(PageRequest.of(2, 10000))
|
|
|
- .build();
|
|
|
-
|
|
|
- List<SearchHit<CommonListES>> searchHits1 = elasticsearchRestTemplate.search(titleBuild, CommonListES.class).getSearchHits();
|
|
|
- List<SearchHit<CommonListES>> searchHits2 = elasticsearchRestTemplate.search(dataBuild, CommonListES.class).getSearchHits();
|
|
|
-
|
|
|
-
|
|
|
- List<CommonListES> titles = searchHits1.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList());
|
|
|
- List<CommonListES> datas = searchHits2.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
- if (datas.size() == 10000) {
|
|
|
- List<SearchHit<CommonListES>> searchHits3 = elasticsearchRestTemplate.search(dataBuild2, CommonListES.class).getSearchHits();
|
|
|
- datas.addAll(searchHits3.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList()));
|
|
|
- }
|
|
|
-
|
|
|
- if (datas.size() == 20000) {
|
|
|
- List<SearchHit<CommonListES>> searchHits4 = elasticsearchRestTemplate.search(dataBuild3, CommonListES.class).getSearchHits();
|
|
|
- datas.addAll(searchHits4.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList()));
|
|
|
- }
|
|
|
-
|
|
|
- titles.addAll(datas);
|
|
|
-
|
|
|
- return titles;
|
|
|
- }
|
|
|
-
|
|
|
-// public List<CommonListES> list(List<String> websitNumbers, String workerNumber, String comId) {
|
|
|
-// // 1. 标题查询(type=1)
|
|
|
-// BoolQueryBuilder titleQueryBuilder = QueryBuilders.boolQuery()
|
|
|
-// .must(QueryBuilders.termQuery("type", "1"));
|
|
|
-//
|
|
|
-// if (StringUtils.isNotEmpty(comId)) {
|
|
|
+// public List<CommonListES> list(List<String> websitNumbers,String workerNumber,String comId){
|
|
|
+// //标题
|
|
|
+// BoolQueryBuilder titleQueryBuilder = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("type", "1"));
|
|
|
+// if(StringUtils.isNotEmpty(comId)){
|
|
|
// titleQueryBuilder.must(QueryBuilders.termQuery("comListId", comId));
|
|
|
// }
|
|
|
+// //内容
|
|
|
+// BoolQueryBuilder must = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("type", "2"));
|
|
|
+// if(StringUtils.isNotEmpty(comId)){
|
|
|
+// must.must(QueryBuilders.termQuery("comListId", comId));
|
|
|
+// }
|
|
|
+// if(StringUtils.isNotEmpty(workerNumber)){
|
|
|
+// must.must(QueryBuilders.matchPhraseQuery("workerNumber", workerNumber));
|
|
|
+// }
|
|
|
+// if(CollectionUtils.isNotEmpty(websitNumbers)){
|
|
|
+// must.filter(QueryBuilders.termsQuery("websitNumber",websitNumbers));
|
|
|
+// }
|
|
|
+// NativeSearchQuery titleBuild = new NativeSearchQueryBuilder().withQuery(titleQueryBuilder).build();
|
|
|
+// NativeSearchQuery dataBuild = new NativeSearchQueryBuilder()
|
|
|
+// .withQuery(must)
|
|
|
+// .withPageable(PageRequest.of(0, 10000))
|
|
|
+// .build();
|
|
|
//
|
|
|
-// NativeSearchQuery titleBuild = new NativeSearchQueryBuilder()
|
|
|
-// .withQuery(titleQueryBuilder)
|
|
|
+// NativeSearchQuery dataBuild2 = new NativeSearchQueryBuilder()
|
|
|
+// .withQuery(must)
|
|
|
+// .withPageable(PageRequest.of(1, 10000))
|
|
|
+// .build();
|
|
|
+// NativeSearchQuery dataBuild3 = new NativeSearchQueryBuilder()
|
|
|
+// .withQuery(must)
|
|
|
+// .withPageable(PageRequest.of(2, 10000))
|
|
|
// .build();
|
|
|
//
|
|
|
-// // 2. 获取标题数据
|
|
|
// List<SearchHit<CommonListES>> searchHits1 = elasticsearchRestTemplate.search(titleBuild, CommonListES.class).getSearchHits();
|
|
|
+// List<SearchHit<CommonListES>> searchHits2 = elasticsearchRestTemplate.search(dataBuild, CommonListES.class).getSearchHits();
|
|
|
+//
|
|
|
+//
|
|
|
// List<CommonListES> titles = searchHits1.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList());
|
|
|
+// List<CommonListES> datas = searchHits2.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList());
|
|
|
//
|
|
|
-// // 3. 使用Scroll API获取内容数据(type=2)
|
|
|
-// List<CommonListES> datas = scrollQueryData(websitNumbers, workerNumber, comId);
|
|
|
//
|
|
|
-// // 4. 合并结果
|
|
|
+// if (datas.size() == 10000) {
|
|
|
+// List<SearchHit<CommonListES>> searchHits3 = elasticsearchRestTemplate.search(dataBuild2, CommonListES.class).getSearchHits();
|
|
|
+// datas.addAll(searchHits3.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList()));
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (datas.size() == 20000) {
|
|
|
+// List<SearchHit<CommonListES>> searchHits4 = elasticsearchRestTemplate.search(dataBuild3, CommonListES.class).getSearchHits();
|
|
|
+// datas.addAll(searchHits4.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList()));
|
|
|
+// }
|
|
|
+//
|
|
|
// titles.addAll(datas);
|
|
|
+//
|
|
|
// return titles;
|
|
|
// }
|
|
|
|
|
|
+ public List<CommonListES> list(List<String> websitNumbers, String workerNumber, String comId) {
|
|
|
+ // 1. 标题查询(type=1)
|
|
|
+ BoolQueryBuilder titleQueryBuilder = QueryBuilders.boolQuery()
|
|
|
+ .must(QueryBuilders.termQuery("type", "1"));
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(comId)) {
|
|
|
+ titleQueryBuilder.must(QueryBuilders.termQuery("comListId", comId));
|
|
|
+ }
|
|
|
+
|
|
|
+ NativeSearchQuery titleBuild = new NativeSearchQueryBuilder()
|
|
|
+ .withQuery(titleQueryBuilder)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 2. 获取标题数据
|
|
|
+ List<SearchHit<CommonListES>> searchHits1 = elasticsearchRestTemplate.search(titleBuild, CommonListES.class).getSearchHits();
|
|
|
+ List<CommonListES> titles = searchHits1.stream().map(SearchHit<CommonListES>::getContent).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 3. 使用Scroll API获取内容数据(type=2)
|
|
|
+ List<CommonListES> datas = scrollQueryData(websitNumbers, workerNumber, comId);
|
|
|
+
|
|
|
+ // 4. 合并结果
|
|
|
+ titles.addAll(datas);
|
|
|
+ return titles;
|
|
|
+ }
|
|
|
+
|
|
|
private List<CommonListES> scrollQueryData(List<String> websitNumbers,
|
|
|
String workerNumber,
|
|
|
String comId) {
|