|
|
@@ -0,0 +1,478 @@
|
|
|
+package com.example.service.impl;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.example.dao.EsDemoMapper;
|
|
|
+import com.example.dao.EsOtherMapper;
|
|
|
+import com.example.pojo.EsDemo;
|
|
|
+import com.example.pojo.EsOther;
|
|
|
+import com.example.service.EsDemoService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.elasticsearch.action.bulk.BulkRequest;
|
|
|
+import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
|
|
+import org.elasticsearch.action.bulk.BulkResponse;
|
|
|
+import org.elasticsearch.action.delete.DeleteRequest;
|
|
|
+import org.elasticsearch.action.get.GetRequest;
|
|
|
+import org.elasticsearch.action.index.IndexRequest;
|
|
|
+import org.elasticsearch.action.search.SearchRequest;
|
|
|
+import org.elasticsearch.action.search.SearchRequestBuilder;
|
|
|
+import org.elasticsearch.action.search.SearchResponse;
|
|
|
+import org.elasticsearch.action.update.UpdateRequest;
|
|
|
+import org.elasticsearch.client.RequestOptions;
|
|
|
+import org.elasticsearch.client.RestHighLevelClient;
|
|
|
+import org.elasticsearch.common.unit.TimeValue;
|
|
|
+import org.elasticsearch.common.xcontent.XContentType;
|
|
|
+import org.elasticsearch.index.query.*;
|
|
|
+import org.elasticsearch.script.Script;
|
|
|
+import org.elasticsearch.search.SearchHit;
|
|
|
+import org.elasticsearch.search.SearchHits;
|
|
|
+import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.swing.filechooser.FileSystemView;
|
|
|
+import java.io.BufferedWriter;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileWriter;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+
|
|
|
+import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @program: 01-SpringBoot-ES-Local
|
|
|
+ * @description: EsDemoServiceImpl
|
|
|
+ * @author: Guanzi
|
|
|
+ * @created: 2021/10/14 15:31
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class EsDemoServiceImpl extends ServiceImpl<EsDemoMapper,EsDemo> implements EsDemoService {
|
|
|
+
|
|
|
+// @Autowired
|
|
|
+// private EsDemoMapper esDemoMapper;
|
|
|
+
|
|
|
+ private static final String IndexRequest = "bd-es";
|
|
|
+ private static final String indexType = "dome220308";
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ @Qualifier("restHighLevelClient")
|
|
|
+ private RestHighLevelClient client;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EsDemoMapper esDemoMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EsOtherMapper esOtherMapper;
|
|
|
+//
|
|
|
+ @Autowired
|
|
|
+ private EsDemoService esDemoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EsOtherServiceImpl esOtherService;
|
|
|
+
|
|
|
+ public Map<String, Object> selEs() throws IOException {
|
|
|
+ // 返回信息。
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+// SearchResponse searchResp = searchByParam("id","10");
|
|
|
+// System.out.println("total:" + searchResp.getHits().getTotalHits());
|
|
|
+// int pageNum = 8;
|
|
|
+// int one = 0;
|
|
|
+// int two = 5000;
|
|
|
+ int pageNum = 123;
|
|
|
+ int one = 0;
|
|
|
+ int two = 5000;
|
|
|
+ for (int i1 = 1; i1 < pageNum; i1++) {
|
|
|
+ one = (i1 - 1) * two;
|
|
|
+ String limitStr = "limit " + one + "," + two;
|
|
|
+ QueryWrapper<EsDemo> esDemoQueryWrapper = new QueryWrapper<>();
|
|
|
+ esDemoQueryWrapper.lambda()
|
|
|
+ .isNotNull(true, EsDemo::getId)
|
|
|
+// .like(true,EsDemo::getDate,"[")
|
|
|
+// .or()
|
|
|
+// .like(true,EsDemo::getDate,":")
|
|
|
+ .last(limitStr);
|
|
|
+ List<EsDemo> demos = esDemoMapper.selectList(esDemoQueryWrapper);
|
|
|
+ System.err.println("sel from mysql:" + demos.size());
|
|
|
+ // 插入30241多数据
|
|
|
+ List<EsDemo> esDemos = new ArrayList<>();
|
|
|
+ for (EsDemo demo : demos) {
|
|
|
+ String date = demo.getDate();
|
|
|
+ System.err.println(date);
|
|
|
+ date = StringUtils.remove(date,"[");
|
|
|
+ date = StringUtils.remove(date,"]");
|
|
|
+ date = StringUtils.substringBeforeLast(date," ");
|
|
|
+ date = StringUtils.remove(date," ");
|
|
|
+ System.out.println("deal date:" + date);
|
|
|
+ demo.setDate(date);
|
|
|
+ esDemos.add(demo);
|
|
|
+ }
|
|
|
+// System.err.println(JSON.toJSONString(esDemos));
|
|
|
+ System.out.println(esDemos.get(0).getDate());
|
|
|
+// if (esDemos.size() == 3){
|
|
|
+// break;
|
|
|
+// }
|
|
|
+ if (esDemos.size() > 0){
|
|
|
+ // 批量导入es库。
|
|
|
+ BulkRequest bulkRequest = new BulkRequest();
|
|
|
+ bulkRequest.timeout("100000s");
|
|
|
+
|
|
|
+ System.err.println("demos size:" + demos.size());
|
|
|
+ // 批处理请求。
|
|
|
+ for (int i = 0; i < esDemos.size(); i++) {
|
|
|
+ bulkRequest.add(
|
|
|
+// new IndexRequest("es_test_demo")
|
|
|
+// new IndexRequest("es_new_demo")
|
|
|
+ new IndexRequest(IndexRequest)
|
|
|
+// .type("dome210929")
|
|
|
+ .type(indexType)
|
|
|
+ .source(JSON.toJSONString(esDemos.get(i)), XContentType.JSON)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ BulkResponse bulkResp = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
+
|
|
|
+ System.err.println("current insert data:" + JSON.toJSONString(esDemos));
|
|
|
+ System.err.println("current insert data:" + esDemos.get(0).getId());
|
|
|
+ System.err.println("inset result:" + bulkResp.hasFailures()); // 是否失败,返回false 代表成功。
|
|
|
+
|
|
|
+ if (false == bulkResp.hasFailures()){
|
|
|
+ map.put("mes","SUCC");
|
|
|
+ }else {
|
|
|
+ map.put("mes","fail");
|
|
|
+ }
|
|
|
+// break;
|
|
|
+ }
|
|
|
+
|
|
|
+// break;
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, Object> compareMysqlDataToEs() throws IOException {
|
|
|
+ // 返回信息。
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ int pageNum = 8;
|
|
|
+ int one = 0;
|
|
|
+ int two = 5000;
|
|
|
+ for (int i1 = 1; i1 < pageNum; i1++) {
|
|
|
+ one = (i1-1)*two;
|
|
|
+ String limitStr = "limit " + one + "," + two;
|
|
|
+ QueryWrapper<EsDemo> esDemoQueryWrapper = new QueryWrapper<>();
|
|
|
+ esDemoQueryWrapper.lambda()
|
|
|
+ .isNotNull(true, EsDemo::getId)
|
|
|
+ .last(limitStr);
|
|
|
+ List<EsDemo> demos = esDemoMapper.selectList(esDemoQueryWrapper);
|
|
|
+ System.err.println("sel from mysql:" + JSON.toJSONString(demos));
|
|
|
+
|
|
|
+ List<EsDemo> esDemos = new ArrayList<>();
|
|
|
+ for (EsDemo demo : demos) {
|
|
|
+ SearchResponse searchResp = searchByParam("id",demo.getId().toString());
|
|
|
+ System.out.println("total:" + searchResp.getHits().getTotalHits());
|
|
|
+ long total = searchResp.getHits().getTotalHits();
|
|
|
+ if (total == 0){
|
|
|
+ esDemos.add(demo);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (esDemos.size() > 0){
|
|
|
+ // 批量导入es库。
|
|
|
+ BulkRequest bulkRequest = new BulkRequest();
|
|
|
+ bulkRequest.timeout("100000s");
|
|
|
+
|
|
|
+ System.err.println("demos size:" + demos.size());
|
|
|
+ // 批处理请求。
|
|
|
+ for (int i = 0; i < esDemos.size(); i++) {
|
|
|
+ bulkRequest.add(
|
|
|
+// new IndexRequest("es_test_demo")
|
|
|
+ new IndexRequest(IndexRequest)
|
|
|
+ .type(indexType)
|
|
|
+ .source(JSON.toJSONString(esDemos.get(i)), XContentType.JSON)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ BulkResponse bulkResp = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
+
|
|
|
+ System.err.println("current insert data:" + JSON.toJSONString(esDemos));
|
|
|
+ System.err.println("current insert data:" + esDemos.get(0).getId());
|
|
|
+ System.err.println("inset result:" + bulkResp.hasFailures()); // 是否失败,返回false 代表成功。
|
|
|
+
|
|
|
+ if (false == bulkResp.hasFailures()){
|
|
|
+ map.put("mes","SUCC");
|
|
|
+ }else {
|
|
|
+ map.put("mes","fail");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RestHighLevelClient restHighLevelClient;
|
|
|
+
|
|
|
+ public long findEs(String id) throws IOException {
|
|
|
+ // 搜索请求对象
|
|
|
+ SearchRequest searchRequest = new SearchRequest("bd-es");
|
|
|
+ // 指定类型
|
|
|
+ searchRequest.types("dome220308");
|
|
|
+ // 搜索源构建对象
|
|
|
+ SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
+ // 搜索方式
|
|
|
+ // matchAllQuery搜索全部
|
|
|
+// searchSourceBuilder.query(QueryBuilders.matchAllQuery());
|
|
|
+ searchSourceBuilder.query(QueryBuilders.termQuery("id", id));
|
|
|
+ // 设置源字段过虑,第一个参数结果集包括哪些字段,第二个参数表示结果集不包括哪些字段
|
|
|
+// searchSourceBuilder.fetchSource(new String[]{"name","studymodel","price","timestamp"},new String[]{});
|
|
|
+ // 向搜索请求对象中设置搜索源
|
|
|
+ searchRequest.source(searchSourceBuilder);
|
|
|
+ // 执行搜索,向ES发起http请求
|
|
|
+ SearchResponse searchResponse = client.search(searchRequest);
|
|
|
+ // 搜索结果
|
|
|
+ SearchHits hits = searchResponse.getHits();
|
|
|
+ // 匹配到的总记录数
|
|
|
+ long totalHits = hits.getTotalHits();
|
|
|
+ System.err.println(totalHits);
|
|
|
+ return totalHits;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 数据丢失后再次导入mysql后,移入es。
|
|
|
+ public Map<String, Object> importMysqlDataToEsOther() throws IOException {
|
|
|
+ // 返回信息。
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+// int i = 609165;
|
|
|
+ int pageNum = 134;
|
|
|
+ int one = 0;
|
|
|
+ int two = 5000;
|
|
|
+// (pageNum-1)*pageSize
|
|
|
+ for (int i1 = 1; i1 < pageNum; i1++) {
|
|
|
+ one = (i1-1)*two;
|
|
|
+ String limitStr = "limit " + one + "," + two;
|
|
|
+ QueryWrapper<EsDemo> esDemoQueryWrapper = new QueryWrapper<>();
|
|
|
+ esDemoQueryWrapper.lambda()
|
|
|
+ .isNotNull(true, EsDemo::getId)
|
|
|
+ .last(limitStr);
|
|
|
+ List<EsDemo> demos = esDemoMapper.selectList(esDemoQueryWrapper);
|
|
|
+ System.err.println("sel from mysql:" + JSON.toJSONString(demos));
|
|
|
+ List<EsDemo> otherDemo = new ArrayList<>();
|
|
|
+ for (EsDemo demo : demos) {
|
|
|
+ // 获取总数
|
|
|
+ long es = findEs(demo.getId().toString());
|
|
|
+ if (es <= 0){
|
|
|
+ otherDemo.add(demo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.err.println("otherDemo:" + JSON.toJSONString(otherDemo));
|
|
|
+ List<EsOther> esOthers = new ArrayList<>();
|
|
|
+ EsOther esOther;
|
|
|
+ for (EsDemo esDemo : otherDemo) {
|
|
|
+ esOther = new EsOther();
|
|
|
+ BeanUtils.copyProperties(esDemo,esOther);
|
|
|
+ esOther.setId(esDemo.getId());
|
|
|
+ esOthers.add(esOther);
|
|
|
+ }
|
|
|
+
|
|
|
+ esOtherService.saveBatch(esOthers);
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ // 自然导入数据。
|
|
|
+ public Map<String, Object> importMysqlDataToEs() throws IOException {
|
|
|
+ // 返回信息。
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+// int i = 609165;
|
|
|
+ int pageNum = 6;
|
|
|
+ int one = 0;
|
|
|
+ int two = 5000;
|
|
|
+ for (int i1 = 1; i1 < pageNum; i1++) {
|
|
|
+ one = (i1-1)*two;
|
|
|
+ String limitStr = "limit " + one + "," + two;
|
|
|
+
|
|
|
+ // 正常导入。
|
|
|
+// QueryWrapper<EsDemo> esDemoQueryWrapper = new QueryWrapper<>();
|
|
|
+// esDemoQueryWrapper.lambda()
|
|
|
+// .isNotNull(true, EsDemo::getId)
|
|
|
+// .last(limitStr);
|
|
|
+// List<EsDemo> demos = esDemoMapper.selectList(esDemoQueryWrapper);
|
|
|
+
|
|
|
+ // 部分未导入成功,再次从新库导入。
|
|
|
+ QueryWrapper<EsOther> esOtherQueryWrapper = new QueryWrapper<>();
|
|
|
+ esOtherQueryWrapper.lambda()
|
|
|
+ .isNotNull(true, EsOther::getId)
|
|
|
+ .last(limitStr);
|
|
|
+ List<EsOther> demos = esOtherMapper.selectList(esOtherQueryWrapper);
|
|
|
+
|
|
|
+ // 批量导入es库。
|
|
|
+ BulkRequest bulkRequest = new BulkRequest();
|
|
|
+ bulkRequest.timeout("100000s");
|
|
|
+
|
|
|
+ // 批量删除
|
|
|
+// SearchResponse searchResp = searchByParam("source","能");
|
|
|
+// System.out.println("total:" + searchResp.getHits().getTotalHits());
|
|
|
+// EsDemo esDemo;
|
|
|
+// List<EsDemo> esDemos = new ArrayList<>();
|
|
|
+// List<EsDemo> failedEsDemos = new ArrayList<>();
|
|
|
+// for(SearchHit hit : searchResp.getHits()){
|
|
|
+// String id = hit.getId();
|
|
|
+// System.out.println("id:" + id);
|
|
|
+// Map<String,Object> map = hit.getSourceAsMap();
|
|
|
+// System.err.println("map:" + JSON.toJSONString(map));
|
|
|
+// EsDemo esDemo1 = JSON.parseObject(JSON.toJSONString(map), EsDemo.class);
|
|
|
+//// int insert = esDemoMapper.insert(esDemo1);
|
|
|
+//// if (insert <= 0){
|
|
|
+//// failedEsDemos.add(esDemo1);
|
|
|
+//// }
|
|
|
+// esDemos.add(esDemo1);
|
|
|
+//
|
|
|
+// // 批量删除
|
|
|
+// // bulkRequest.add(
|
|
|
+// // new DeleteRequest("es_test_demo")
|
|
|
+// // .id(id)
|
|
|
+// // );
|
|
|
+//// break;
|
|
|
+// }
|
|
|
+// System.err.println("****************** esDemos siZe:" + esDemos.size());
|
|
|
+// System.err.println("esDemos:" + JSON.toJSONString(esDemos));
|
|
|
+// System.err.println("failedEsDemos:" + JSON.toJSONString(failedEsDemos));
|
|
|
+// // 插入数据库
|
|
|
+// boolean b = esDemoService.saveBatch(esDemos);
|
|
|
+// System.err.println("b:" + b);
|
|
|
+
|
|
|
+
|
|
|
+ // 批量更新
|
|
|
+ // for (int i = 0; i < demos.size(); i++) {
|
|
|
+ // SearchResponse searchUpResp = searchByParam("title", demos.get(i).getTitle());
|
|
|
+ // for (SearchHit hit : searchUpResp.getHits()) {
|
|
|
+ // String id = hit.getId();
|
|
|
+ // Map<String,Object> map = hit.getSourceAsMap();
|
|
|
+ // System.out.println(JSON.toJSONString(map));
|
|
|
+ // // 批量更新
|
|
|
+ // bulkRequest.add(
|
|
|
+ // new UpdateRequest()
|
|
|
+ // .index("es_test_demo")
|
|
|
+ // .id(id)
|
|
|
+ // .upsert(JSON.toJSONString(demos.get(i)),XContentType.JSON)
|
|
|
+ // );
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // }
|
|
|
+
|
|
|
+ // SearchResponse searchUpResp = searchByParam("title", demos.get(0).getTitle());
|
|
|
+// for (SearchHit hit : searchUpResp.getHits()) {
|
|
|
+// System.err.println(searchUpResp.getHits().totalHits);
|
|
|
+// Map<String,Object> map = hit.getSourceAsMap();
|
|
|
+// System.out.println(JSON.toJSONString(map));
|
|
|
+//
|
|
|
+// SearchResponse searchUpResp = searchByParam("title", "铁");
|
|
|
+// SearchResponse searchUpResp = searchByParam("date", "20");
|
|
|
+// // EsDemo esDemo = JSON.parseObject(JSON.toJSONString(map),EsDemo.class);
|
|
|
+// Map<String,Object> selMap = new HashMap<>();
|
|
|
+// selMap.put("title",map.get("title"));
|
|
|
+// if (map.containsKey("date")){
|
|
|
+// String date = map.get("date").toString();
|
|
|
+// System.out.println("1:" + date);
|
|
|
+// date = StringUtils.remove(date,"[");
|
|
|
+// date = StringUtils.remove(date,"]");
|
|
|
+// date = StringUtils.removeFirst(date," ");
|
|
|
+//
|
|
|
+// System.out.println("2:" + date);
|
|
|
+//
|
|
|
+// map.put("date",date);
|
|
|
+// selMap.put("date",date);
|
|
|
+//
|
|
|
+// System.out.println("map:" + JSON.toJSONString(map));
|
|
|
+// System.out.println("selMap:" + JSON.toJSONString(selMap));
|
|
|
+//// System.err.println(map.get("title"));
|
|
|
+//// List<EsDemo> esDemos = esDemoMapper.selectByMap(selMap);
|
|
|
+//// if (esDemos.size() > 0){
|
|
|
+//// System.out.println("2:" + esDemos.get(0).getContent());
|
|
|
+//// map.put("content","eeeeeeeeee" + esDemos.get(0).getContent());
|
|
|
+//// System.out.println("2:" + map.get("content"));
|
|
|
+//// }
|
|
|
+//
|
|
|
+// System.out.println("3:" + map.get("title"));
|
|
|
+// System.err.println("33:" + map.get("id"));
|
|
|
+// System.err.println("333:" + hit.getId());
|
|
|
+// // 批量更新
|
|
|
+// bulkRequest.add(
|
|
|
+// new UpdateRequest()
|
|
|
+// .index("es_test_demo")
|
|
|
+// .type("dome210929")
|
|
|
+// .id(hit.getId())
|
|
|
+// .doc(XContentType.JSON, "date", map.get("date").toString()).upsert()
|
|
|
+// );
|
|
|
+//// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ System.err.println("demos size:" + demos.size());
|
|
|
+ // 批处理请求。
|
|
|
+ for (int i = 0; i < demos.size(); i++) {
|
|
|
+ bulkRequest.add(
|
|
|
+// new IndexRequest("es_test_demo")
|
|
|
+ new IndexRequest(IndexRequest)
|
|
|
+ .type(indexType)
|
|
|
+ .source(JSON.toJSONString(demos.get(i)), XContentType.JSON)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ BulkResponse bulkResp = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
+ System.err.println("导入结果:" + bulkResp.hasFailures()); // 是否失败,返回false 代表成功。
|
|
|
+
|
|
|
+ if (false == bulkResp.hasFailures()){
|
|
|
+ map.put("mes","SUCC");
|
|
|
+ }else {
|
|
|
+ map.put("mes","fail");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public SearchResponse searchByParam(String key,String val) throws IOException {
|
|
|
+ log.info("key:{},val:{}",key,val);
|
|
|
+// SearchRequest searchRequest = new SearchRequest("es_new_demo");
|
|
|
+ SearchRequest searchRequest = new SearchRequest("bd-es");
|
|
|
+ // SearchRequest searchRequest = new SearchRequest("es_dome");
|
|
|
+ // 构建搜索条件
|
|
|
+ SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
|
+
|
|
|
+ // 查询条件,用QueryBuilders实现
|
|
|
+ // QueryBuilders.matchAllQuery() // 匹配所有。
|
|
|
+
|
|
|
+ // QueryBuilders.termQuery 精确查找
|
|
|
+ TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(key,val);
|
|
|
+// QueryBuilder termQueryBuilder = QueryBuilders.matchQuery(key,val);
|
|
|
+
|
|
|
+// MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
|
|
|
+ Integer page = 1;
|
|
|
+ // Integer rows = 3568;
|
|
|
+ Integer rows = 609165;
|
|
|
+// Integer page = 7;
|
|
|
+// Integer rows = 100000;
|
|
|
+ searchSourceBuilder.from((page - 1) * rows);
|
|
|
+ searchSourceBuilder.size(rows);
|
|
|
+// searchSourceBuilder.sort("")
|
|
|
+ searchSourceBuilder.query(termQueryBuilder);
|
|
|
+ searchSourceBuilder.timeout(new TimeValue(600000, TimeUnit.SECONDS));
|
|
|
+
|
|
|
+ searchRequest.source(searchSourceBuilder);
|
|
|
+
|
|
|
+ SearchResponse searchResp = client.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
+ System.out.println("search total:" + searchResp.getHits().getTotalHits());
|
|
|
+ return searchResp;
|
|
|
+ }
|
|
|
+}
|