Commit 3ff97718 authored by shiyu's avatar shiyu

es随机查询

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