Commit 8793603d authored by shiyu's avatar shiyu

es优化in查询

parent 810f3e1d
...@@ -111,6 +111,7 @@ public class ShiroConfig { ...@@ -111,6 +111,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/admin/auth/403", "anon"); filterChainDefinitionMap.put("/admin/auth/403", "anon");
filterChainDefinitionMap.put("/actuator/health", "anon"); filterChainDefinitionMap.put("/actuator/health", "anon");
filterChainDefinitionMap.put("/admin/item/updateUrl", "anon"); filterChainDefinitionMap.put("/admin/item/updateUrl", "anon");
filterChainDefinitionMap.put("/admin/item/synToEs", "anon");
// filterChainDefinitionMap.put("/admin/**", "anon"); // filterChainDefinitionMap.put("/admin/**", "anon");
filterChainDefinitionMap.put("/admin/**", "authc"); filterChainDefinitionMap.put("/admin/**", "authc");
......
...@@ -65,4 +65,10 @@ public class ItemController { ...@@ -65,4 +65,10 @@ public class ItemController {
public void syn() { public void syn() {
synCoinJob.updateImageUrlOfsSize(); synCoinJob.updateImageUrlOfsSize();
} }
@GetMapping("/synToEs")
public void synToEs() {
synCoinJob.synItemToEs();
}
} }
...@@ -178,6 +178,7 @@ public class SynCoinJob { ...@@ -178,6 +178,7 @@ public class SynCoinJob {
public void synItemToEs() { public void synItemToEs() {
try { try {
ExecutorService executorService = Executors.newFixedThreadPool(10);
CoinRequestDto coinRequestDto = new CoinRequestDto(); CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setPage(1); coinRequestDto.setPage(1);
coinRequestDto.setLimit(100); coinRequestDto.setLimit(100);
...@@ -190,7 +191,9 @@ public class SynCoinJob { ...@@ -190,7 +191,9 @@ public class SynCoinJob {
dto.setPage(i); dto.setPage(i);
dto.setLimit(100); dto.setLimit(100);
List<Item> itemList = itemDao.findListByPage(dto); List<Item> itemList = itemDao.findListByPage(dto);
executorService.submit(() -> {
itemEsDao.create(itemList); itemEsDao.create(itemList);
});
logger.info(">>>>>>>>>>>>>>>>> 页码 = {}, 同步es 成功 ! <<<<<<<<<<<<<<<<<", i); logger.info(">>>>>>>>>>>>>>>>> 页码 = {}, 同步es 成功 ! <<<<<<<<<<<<<<<<<", i);
}); });
logger.info(">>>>>>>>>>>>>>>>>数据同步es 完成 SUCCESS!!!!! <<<<<<<<<<<<<<<<<"); logger.info(">>>>>>>>>>>>>>>>>数据同步es 完成 SUCCESS!!!!! <<<<<<<<<<<<<<<<<");
......
package com.wwdz.ch.db.es; package com.wwdz.ch.db.es;
import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch._types.FieldValue;
import co.elastic.clients.elasticsearch._types.query_dsl.*; import co.elastic.clients.elasticsearch._types.query_dsl.*;
import co.elastic.clients.elasticsearch.core.*; import co.elastic.clients.elasticsearch.core.*;
import co.elastic.clients.elasticsearch.core.bulk.BulkOperation; import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
...@@ -79,25 +80,18 @@ public class ItemEsDao { ...@@ -79,25 +80,18 @@ public class ItemEsDao {
int page = esSearchRequestDto.getPage(); int page = esSearchRequestDto.getPage();
int size = esSearchRequestDto.getSize(); int size = esSearchRequestDto.getSize();
int from = (page - 1) * size; int from = (page - 1) * size;
/* Query sourceTermQuery = TermQuery.of(t ->
t.field("source")
.value(2))._toQuery();
Query sourceTermQuery2 = TermQuery.of(t ->
t.field("source")
.value(7))._toQuery();*/
SearchRequest.Builder builder = new SearchRequest.Builder(); SearchRequest.Builder builder = new SearchRequest.Builder();
builder.index(INDEX); builder.index(INDEX);
if (!CollectionUtils.isEmpty(esSearchRequestDto.getIncludes())) { if (!CollectionUtils.isEmpty(esSearchRequestDto.getIncludes())) {
builder.source(sourceBuild->sourceBuild.filter(f->f.includes(esSearchRequestDto.getIncludes()))); builder.source(sourceBuild->sourceBuild.filter(f->f.includes(esSearchRequestDto.getIncludes())));
} }
List<Query> sourceTypeQueryList = new ArrayList<>(); List<FieldValue> sourceQueryList = new ArrayList<>();
SOURCE_LIST.forEach(i -> { SOURCE_LIST.forEach(i -> {
Query query = TermQuery.of(t->t.field("source").value(i))._toQuery(); sourceQueryList.add(FieldValue.of(i));
sourceTypeQueryList.add(query);
}); });
Query shouldQuery = QueryBuilders.bool(q->q.should(sourceTypeQueryList)); Query termsQuery = QueryBuilders.terms(s->s.field("source").terms(t->t.value(sourceQueryList)));
Query shouldQuery = QueryBuilders.bool(q->q.should(termsQuery));
BoolQuery.Builder build = QueryBuilders.bool().must(shouldQuery); BoolQuery.Builder build = QueryBuilders.bool().must(shouldQuery);
if(StringUtils.hasLength(esSearchRequestDto.getContent())) { if(StringUtils.hasLength(esSearchRequestDto.getContent())) {
...@@ -115,6 +109,8 @@ public class ItemEsDao { ...@@ -115,6 +109,8 @@ public class ItemEsDao {
.functions(b->b.randomScore(s->s.field("id").seed(String.valueOf(random.nextDouble()))))); .functions(b->b.randomScore(s->s.field("id").seed(String.valueOf(random.nextDouble())))));
builder.query(functionScoreQuery._toQuery()); builder.query(functionScoreQuery._toQuery());
} }
Query wildcardQuery = WildcardQuery.of(w->w.field("images").value("*_*"))._toQuery();
build.must(wildcardQuery);
builder.size(size); builder.size(size);
SearchRequest searchRequest = builder.build(); SearchRequest searchRequest = builder.build();
logger.info("查询语句 : {}", searchRequest.query()); logger.info("查询语句 : {}", searchRequest.query());
......
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