mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-07 01:28:37 +08:00
v1.1.1
1.修复在混合查询模式下,用户手count api无效的缺陷。 2.修复分页参数中hasNextPage不正确的缺陷。 3.修复仅设置socketTimeOut不设置requestTimeOut等参数时socketTimeOut参数无效的缺陷。 本期主要是一些小缺陷修复和体验优化,后面两个版本将有重大更新
This commit is contained in:
parent
074be3c2fd
commit
af06907bef
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@ -94,7 +94,8 @@ public class EsAutoConfiguration {
|
||||
Integer connectTimeOut = easyEsConfigProperties.getConnectTimeout();
|
||||
Integer socketTimeOut = easyEsConfigProperties.getSocketTimeout();
|
||||
Integer connectionRequestTimeOut = easyEsConfigProperties.getConnectionRequestTimeout();
|
||||
boolean needSetRequestConfig = Objects.nonNull(connectTimeOut) || Objects.nonNull(connectionRequestTimeOut);
|
||||
boolean needSetRequestConfig = Objects.nonNull(connectTimeOut) || Objects.nonNull(socketTimeOut) ||
|
||||
Objects.nonNull(connectionRequestTimeOut);
|
||||
if (needSetRequestConfig) {
|
||||
builder.setRequestConfigCallback(requestConfigBuilder -> {
|
||||
Optional.ofNullable(connectTimeOut).ifPresent(requestConfigBuilder::setConnectTimeout);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -14,6 +14,8 @@ import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.easyes.annotation.rely.AnnotationConstants.DEFAULT_MAX_RESULT_WINDOW;
|
||||
|
||||
/**
|
||||
* 实体类信息
|
||||
* <p>
|
||||
@ -45,7 +47,7 @@ public class EntityInfo {
|
||||
/**
|
||||
* 最大返回数
|
||||
*/
|
||||
private Integer maxResultWindow;
|
||||
private Integer maxResultWindow = DEFAULT_MAX_RESULT_WINDOW;
|
||||
/**
|
||||
* 表映射结果集
|
||||
*/
|
||||
|
||||
@ -72,7 +72,7 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
/**
|
||||
* 所有导航页号
|
||||
*/
|
||||
private int[] navigatepageNums;
|
||||
private int[] navigatePageNums;
|
||||
/**
|
||||
* 导航条上的第一页
|
||||
*/
|
||||
@ -108,12 +108,6 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
this.endRow = list.size() > 0 ? list.size() - 1 : 0;
|
||||
|
||||
this.navigatePages = navigatePages;
|
||||
//计算导航页
|
||||
calcNavigatepageNums();
|
||||
//计算前后页,第一页,最后一页
|
||||
calcPage();
|
||||
//判断页面边界
|
||||
judgePageBoudary();
|
||||
}
|
||||
|
||||
public static <T> EsPageInfo<T> of(List<T> list) {
|
||||
@ -127,15 +121,15 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
/**
|
||||
* 计算导航页
|
||||
*/
|
||||
private void calcNavigatepageNums() {
|
||||
public void calcNavigatePageNums() {
|
||||
//当总页数小于或等于导航页码数时
|
||||
if (pages <= navigatePages) {
|
||||
navigatepageNums = new int[pages];
|
||||
navigatePageNums = new int[pages];
|
||||
for (int i = 0; i < pages; i++) {
|
||||
navigatepageNums[i] = i + 1;
|
||||
navigatePageNums[i] = i + 1;
|
||||
}
|
||||
} else { //当总页数大于导航页码数时
|
||||
navigatepageNums = new int[navigatePages];
|
||||
navigatePageNums = new int[navigatePages];
|
||||
int startNum = pageNum - navigatePages / 2;
|
||||
int endNum = pageNum + navigatePages / 2;
|
||||
|
||||
@ -143,18 +137,18 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
startNum = 1;
|
||||
//(最前navigatePages页
|
||||
for (int i = 0; i < navigatePages; i++) {
|
||||
navigatepageNums[i] = startNum++;
|
||||
navigatePageNums[i] = startNum++;
|
||||
}
|
||||
} else if (endNum > pages) {
|
||||
endNum = pages;
|
||||
//最后navigatePages页
|
||||
for (int i = navigatePages - 1; i >= 0; i--) {
|
||||
navigatepageNums[i] = endNum--;
|
||||
navigatePageNums[i] = endNum--;
|
||||
}
|
||||
} else {
|
||||
//所有中间页
|
||||
for (int i = 0; i < navigatePages; i++) {
|
||||
navigatepageNums[i] = startNum++;
|
||||
navigatePageNums[i] = startNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -163,10 +157,10 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
/**
|
||||
* 计算前后页,第一页,最后一页
|
||||
*/
|
||||
private void calcPage() {
|
||||
if (navigatepageNums != null && navigatepageNums.length > 0) {
|
||||
navigateFirstPage = navigatepageNums[0];
|
||||
navigateLastPage = navigatepageNums[navigatepageNums.length - 1];
|
||||
public void calcPage() {
|
||||
if (navigatePageNums != null && navigatePageNums.length > 0) {
|
||||
navigateFirstPage = navigatePageNums[0];
|
||||
navigateLastPage = navigatePageNums[navigatePageNums.length - 1];
|
||||
if (pageNum > 1) {
|
||||
prePage = pageNum - 1;
|
||||
}
|
||||
@ -179,10 +173,9 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
/**
|
||||
* 判定页面边界
|
||||
*/
|
||||
private void judgePageBoudary() {
|
||||
public void judgePageBoundary() {
|
||||
isFirstPage = pageNum == 1;
|
||||
isLastPage = pageNum == pages || pages == 0;
|
||||
;
|
||||
hasPreviousPage = pageNum > 1;
|
||||
hasNextPage = pageNum < pages;
|
||||
}
|
||||
@ -203,7 +196,7 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
||||
", hasPreviousPage=" + hasPreviousPage +
|
||||
", hasNextPage=" + hasNextPage +
|
||||
", navigatePages=" + navigatePages +
|
||||
", navigatepageNums=" + Arrays.toString(navigatepageNums) +
|
||||
", navigatepageNums=" + Arrays.toString(navigatePageNums) +
|
||||
", navigateFirstPage=" + navigateFirstPage +
|
||||
", navigateLastPage=" + navigateLastPage +
|
||||
", total=" + total +
|
||||
|
||||
@ -38,6 +38,7 @@ import org.elasticsearch.client.indices.PutMappingRequest;
|
||||
import org.elasticsearch.common.text.Text;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.index.reindex.BulkByScrollResponse;
|
||||
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
|
||||
@ -248,9 +249,11 @@ public class BaseEsMapperImpl<T> implements BaseEsMapper<T> {
|
||||
} else {
|
||||
// 不去重,直接count获取,效率更高
|
||||
CountRequest countRequest = new CountRequest(getIndexNames(wrapper.indexNames));
|
||||
BoolQueryBuilder boolQueryBuilder = WrapperProcessor.initBoolQueryBuilder(wrapper.baseEsParamList,
|
||||
wrapper.enableMust2Filter, entityClass);
|
||||
countRequest.query(boolQueryBuilder);
|
||||
QueryBuilder queryBuilder = Optional.ofNullable(wrapper.searchSourceBuilder)
|
||||
.map(SearchSourceBuilder::query)
|
||||
.orElseGet(() -> WrapperProcessor.initBoolQueryBuilder(wrapper.baseEsParamList,
|
||||
wrapper.enableMust2Filter, entityClass));
|
||||
countRequest.query(queryBuilder);
|
||||
CountResponse count;
|
||||
try {
|
||||
printCountDSL(countRequest);
|
||||
@ -764,16 +767,13 @@ public class BaseEsMapperImpl<T> implements BaseEsMapper<T> {
|
||||
SearchRequest searchRequest = new SearchRequest(getIndexNames(wrapper.indexNames));
|
||||
|
||||
// 用户在wrapper中指定的混合查询条件优先级最高
|
||||
SearchSourceBuilder searchSourceBuilder;
|
||||
if (Objects.isNull(wrapper.searchSourceBuilder)) {
|
||||
searchSourceBuilder = WrapperProcessor.buildSearchSourceBuilder(wrapper, entityClass);
|
||||
} else {
|
||||
searchSourceBuilder = wrapper.searchSourceBuilder;
|
||||
SearchSourceBuilder searchSourceBuilder = Optional.ofNullable(wrapper.searchSourceBuilder)
|
||||
.map(builder -> {
|
||||
// 兼容混合查询时用户在分页中自定义的分页参数
|
||||
Optional.ofNullable(wrapper.from).ifPresent(searchSourceBuilder::from);
|
||||
Optional.ofNullable(wrapper.size).ifPresent(searchSourceBuilder::size);
|
||||
}
|
||||
|
||||
Optional.ofNullable(wrapper.from).ifPresent(builder::from);
|
||||
Optional.ofNullable(wrapper.size).ifPresent(builder::size);
|
||||
return builder;
|
||||
}).orElseGet(() -> WrapperProcessor.buildSearchSourceBuilder(wrapper, entityClass));
|
||||
searchRequest.source(searchSourceBuilder);
|
||||
Optional.ofNullable(searchAfter).ifPresent(searchSourceBuilder::searchAfter);
|
||||
printDSL(searchRequest);
|
||||
|
||||
@ -30,6 +30,12 @@ public class PageHelper {
|
||||
pageInfo.setPageNum(pageNum);
|
||||
pageInfo.setPageSize(pageSize);
|
||||
pageInfo.setPages((int) (total % pageSize > 0 ? total / pageSize + 1 : total / pageSize));
|
||||
// 计算导航页
|
||||
pageInfo.calcNavigatePageNums();
|
||||
// 计算前后页,第一页,最后一页
|
||||
pageInfo.calcPage();
|
||||
// 判断页面边界
|
||||
pageInfo.judgePageBoundary();
|
||||
return pageInfo;
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
|
||||
<name>easy-es-parent</name>
|
||||
<description>easy use for elastic search</description>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<artifactId>easy-es</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
@ -21,7 +21,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-boot-starter</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<artifactId>easy-es</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.1.1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>easy-es-test</artifactId>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user