Commit 3ff97718 authored by shiyu's avatar shiyu

es随机查询

parent 8bd2d285
......@@ -110,10 +110,11 @@
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.8.2</version>
<version>8.9.0</version>
</dependency>
</dependencies>
......
......@@ -6,6 +6,7 @@ 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.core.search.ScoreMode;
import com.wwdz.ch.db.bean.EsPageInfo;
import com.wwdz.ch.db.bean.ItemOfEs;
import com.wwdz.ch.db.domain.Item;
......@@ -103,18 +104,15 @@ public class ItemEsDao {
build.must(matchQuery);
builder.from(from);
builder.query(build.build()._toQuery());
} else {
int num = 10000 - size;
Random random = new Random();
from = random.nextInt(num);
builder.from(from);
Random random = new Random();
FunctionScoreQuery functionScoreQuery = FunctionScoreQuery.of(a->a.query(build.build()._toQuery()).boostMode(FunctionBoostMode.Replace)
.functions(b->b.randomScore(s->s.field("id").seed(String.valueOf(random.nextDouble())))));
builder.query(functionScoreQuery._toQuery());
}
builder.query(build.build()._toQuery());
builder.size(size);
/* builder.sort(f -> f.field(o -> o.field("coin_id")
.order(SortOrder.Desc)));*/
SearchRequest searchRequest = builder.build();
logger.info("查询语句 : {}", searchRequest.query());
SearchResponse<ItemOfEs> searchResponse = elasticsearchClient.search(searchRequest, ItemOfEs.class);
long total = searchResponse.hits().total().value();
......@@ -127,7 +125,7 @@ public class ItemEsDao {
list.add(itemOfEs);
idList.add(itemOfEs.getId());
}
logger.info("======== 随机返回的数据id : {}", idList);
logger.info("======== 返回的数据id : {}", idList);
esPageInfo = EsPageInfo.of(total, list, page, size);
} catch (Exception e) {
logger.error("ES 查询商品列表 error : {}", e);
......
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