|
@@ -42,14 +42,15 @@ public class YoumeiDataServiceImpl extends ServiceImpl<YoumeiDataMapper, YoumeiD
|
|
private ElasticsearchClient elasticsearchClient;
|
|
private ElasticsearchClient elasticsearchClient;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
- private ObjectMapper objectMapper;
|
|
|
|
|
|
+ private YoumeiOffsetServiceImpl youmeiOffsetService;
|
|
|
|
+
|
|
|
|
|
|
public Page<YoumeiEsData> search(DataRequestDTO dataRequestDTO){
|
|
public Page<YoumeiEsData> search(DataRequestDTO dataRequestDTO){
|
|
SearchResponse<YoumeiData> response = null;
|
|
SearchResponse<YoumeiData> response = null;
|
|
Page<YoumeiEsData> page = new Page<>(dataRequestDTO.getPage(), dataRequestDTO.getPageSize());
|
|
Page<YoumeiEsData> page = new Page<>(dataRequestDTO.getPage(), dataRequestDTO.getPageSize());
|
|
int offset = (int) ((page.getCurrent() - 1) * page.getSize());
|
|
int offset = (int) ((page.getCurrent() - 1) * page.getSize());
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
-
|
|
|
|
|
|
+ Long maxId = youmeiOffsetService.getById(4).getOffset();
|
|
try {
|
|
try {
|
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
builder.index("news_data").from(offset).size((int) page.getSize());
|
|
builder.index("news_data").from(offset).size((int) page.getSize());
|
|
@@ -68,6 +69,7 @@ public class YoumeiDataServiceImpl extends ServiceImpl<YoumeiDataMapper, YoumeiD
|
|
Query.of(y -> y.multiMatch(MultiMatchQuery.of(z -> z.fields(Arrays.asList("title", "content")).query(dataRequestDTO.getKeywords()))))
|
|
Query.of(y -> y.multiMatch(MultiMatchQuery.of(z -> z.fields(Arrays.asList("title", "content")).query(dataRequestDTO.getKeywords()))))
|
|
).minScore(10D);
|
|
).minScore(10D);
|
|
}
|
|
}
|
|
|
|
+ builder.postFilter(Query.of(x->x.range(y->y.field("offset").gte(JsonData.of(maxId - 10000)))));
|
|
SearchRequest searchRequest = builder.build();
|
|
SearchRequest searchRequest = builder.build();
|
|
|
|
|
|
response = elasticsearchClient.search(searchRequest, YoumeiData.class);
|
|
response = elasticsearchClient.search(searchRequest, YoumeiData.class);
|