1.修复在混合查询模式下,用户手count api无效的缺陷。
2.修复分页参数中hasNextPage不正确的缺陷。
3.修复仅设置socketTimeOut不设置requestTimeOut等参数时socketTimeOut参数无效的缺陷。
本期主要是一些小缺陷修复和体验优化,后面两个版本将有重大更新
This commit is contained in:
xpc1024 2022-12-16 18:07:26 +08:00
parent 074be3c2fd
commit af06907bef
14 changed files with 48 additions and 46 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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);

View File

@ -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>

View File

@ -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>

View File

@ -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;
/**
* 表映射结果集
*/

View File

@ -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 +

View File

@ -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);

View File

@ -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;
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -6,7 +6,7 @@
<groupId>cn.easy-es</groupId>
<artifactId>easy-es</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
<name>easy-es</name>
<description>easy use for elastic search</description>