Commit 8bd2d285 authored by shiyu's avatar shiyu

EsSearchRequestDto定义所需字段

parent c8faf7ec
......@@ -46,6 +46,12 @@ public class EsSearchRequestDto implements Entity {
this.includes = Arrays.asList(includes);
}
public EsSearchRequestDto(List<String> includes) {
this.includes = includes;
}
public EsSearchRequestDto(String content, int page, int size) {
this.content = content;
this.page = page;
......@@ -63,4 +69,8 @@ public class EsSearchRequestDto implements Entity {
public static EsSearchRequestDto includes(String... includes) {
return new EsSearchRequestDto(includes);
}
public static EsSearchRequestDto includes(List<String> includes) {
return new EsSearchRequestDto(includes);
}
}
package com.wwdz.ch.db.es;
import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch._types.*;
import co.elastic.clients.elasticsearch._types.aggregations.AggregationBuilders;
import co.elastic.clients.elasticsearch._types.analysis.Language;
import co.elastic.clients.elasticsearch._types.query_dsl.*;
import co.elastic.clients.elasticsearch.core.*;
import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
import co.elastic.clients.elasticsearch.core.bulk.CreateOperation;
import co.elastic.clients.elasticsearch.core.search.Hit;
import co.elastic.clients.elasticsearch.indices.CreateIndexResponse;
import co.elastic.clients.elasticsearch.indices.DeleteIndexResponse;
import co.elastic.clients.json.JsonData;
import co.elastic.clients.util.ObjectBuilder;
import com.fasterxml.jackson.databind.util.ArrayBuilders;
import com.wwdz.ch.db.bean.EsPageInfo;
import com.wwdz.ch.db.bean.ItemOfEs;
import com.wwdz.ch.db.domain.Item;
......@@ -22,19 +14,14 @@ import com.xxdxxs.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.IntStream;
import java.util.stream.LongStream;
@Repository
......@@ -84,11 +71,6 @@ public class ItemEsDao {
EsPageInfo esPageInfo = null;
try {
List<ItemOfEs> list = new ArrayList<>();
/* //查询总条数
CountResponse countResponse = elasticsearchClient.count();
long total = countResponse.count();
logger.info(">>>>>>>>>> 数据总量 :{} <<<<<<<<<<", total);*/
int page = esSearchRequestDto.getPage();
int size = esSearchRequestDto.getSize();
int from = (page - 1) * size;
......@@ -100,10 +82,11 @@ public class ItemEsDao {
t.field("source")
.value(7))._toQuery();
SearchRequest.Builder builder = new SearchRequest.Builder();
builder.index(INDEX);
builder.source(sourceBuild->sourceBuild.filter(f->f.includes("id", "images", "name", "price")));
if (!CollectionUtils.isEmpty(esSearchRequestDto.getIncludes())) {
builder.source(sourceBuild->sourceBuild.filter(f->f.includes(esSearchRequestDto.getIncludes())));
}
List<Query> sourceTypeQueryList = new ArrayList<>();
CHINESE_SOURCE_LIST.forEach(i -> {
Query query = TermQuery.of(t->t.field("sourceType").value(i))._toQuery();
......@@ -125,18 +108,6 @@ public class ItemEsDao {
Random random = new Random();
from = random.nextInt(num);
builder.from(from);
/* Script script = new Script.Builder(ScriptType.INLINE, "painless", "Math.random()", null).build();
ScriptSortBuilder scriptSortBuilder = new ScriptSortBuilder(script).type(ScriptSortType.NUMBER).order(SortOrder.DESC);
SearchRequest searchRequest = new SearchRequest().source(new SearchSourceBuilder()
.query(QueryBuilders.functionScoreQuery(QueryBuilders.matchAllQuery()).randomScore(script))
.sort(scriptSortBuilder)
.size(20));
builder.sort(ScriptSort.of(s -> s.type(ScriptSortType.Number).script(new Script("ss"))).order(SortOrder.Desc))));
logger.info(">>>>>>>>>>>>> script = {}", scriptSort.script().toString());*/
}
builder.query(build.build()._toQuery());
builder.size(size);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment