mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-07 09:39:04 +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>
|
<parent>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|||||||
@ -94,7 +94,8 @@ public class EsAutoConfiguration {
|
|||||||
Integer connectTimeOut = easyEsConfigProperties.getConnectTimeout();
|
Integer connectTimeOut = easyEsConfigProperties.getConnectTimeout();
|
||||||
Integer socketTimeOut = easyEsConfigProperties.getSocketTimeout();
|
Integer socketTimeOut = easyEsConfigProperties.getSocketTimeout();
|
||||||
Integer connectionRequestTimeOut = easyEsConfigProperties.getConnectionRequestTimeout();
|
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) {
|
if (needSetRequestConfig) {
|
||||||
builder.setRequestConfigCallback(requestConfigBuilder -> {
|
builder.setRequestConfigCallback(requestConfigBuilder -> {
|
||||||
Optional.ofNullable(connectTimeOut).ifPresent(requestConfigBuilder::setConnectTimeout);
|
Optional.ofNullable(connectTimeOut).ifPresent(requestConfigBuilder::setConnectTimeout);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,8 @@ import java.util.*;
|
|||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.easyes.annotation.rely.AnnotationConstants.DEFAULT_MAX_RESULT_WINDOW;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实体类信息
|
* 实体类信息
|
||||||
* <p>
|
* <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.endRow = list.size() > 0 ? list.size() - 1 : 0;
|
||||||
|
|
||||||
this.navigatePages = navigatePages;
|
this.navigatePages = navigatePages;
|
||||||
//计算导航页
|
|
||||||
calcNavigatepageNums();
|
|
||||||
//计算前后页,第一页,最后一页
|
|
||||||
calcPage();
|
|
||||||
//判断页面边界
|
|
||||||
judgePageBoudary();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> EsPageInfo<T> of(List<T> list) {
|
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) {
|
if (pages <= navigatePages) {
|
||||||
navigatepageNums = new int[pages];
|
navigatePageNums = new int[pages];
|
||||||
for (int i = 0; i < pages; i++) {
|
for (int i = 0; i < pages; i++) {
|
||||||
navigatepageNums[i] = i + 1;
|
navigatePageNums[i] = i + 1;
|
||||||
}
|
}
|
||||||
} else { //当总页数大于导航页码数时
|
} else { //当总页数大于导航页码数时
|
||||||
navigatepageNums = new int[navigatePages];
|
navigatePageNums = new int[navigatePages];
|
||||||
int startNum = pageNum - navigatePages / 2;
|
int startNum = pageNum - navigatePages / 2;
|
||||||
int endNum = pageNum + navigatePages / 2;
|
int endNum = pageNum + navigatePages / 2;
|
||||||
|
|
||||||
@ -143,18 +137,18 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
|||||||
startNum = 1;
|
startNum = 1;
|
||||||
//(最前navigatePages页
|
//(最前navigatePages页
|
||||||
for (int i = 0; i < navigatePages; i++) {
|
for (int i = 0; i < navigatePages; i++) {
|
||||||
navigatepageNums[i] = startNum++;
|
navigatePageNums[i] = startNum++;
|
||||||
}
|
}
|
||||||
} else if (endNum > pages) {
|
} else if (endNum > pages) {
|
||||||
endNum = pages;
|
endNum = pages;
|
||||||
//最后navigatePages页
|
//最后navigatePages页
|
||||||
for (int i = navigatePages - 1; i >= 0; i--) {
|
for (int i = navigatePages - 1; i >= 0; i--) {
|
||||||
navigatepageNums[i] = endNum--;
|
navigatePageNums[i] = endNum--;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//所有中间页
|
//所有中间页
|
||||||
for (int i = 0; i < navigatePages; i++) {
|
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() {
|
public void calcPage() {
|
||||||
if (navigatepageNums != null && navigatepageNums.length > 0) {
|
if (navigatePageNums != null && navigatePageNums.length > 0) {
|
||||||
navigateFirstPage = navigatepageNums[0];
|
navigateFirstPage = navigatePageNums[0];
|
||||||
navigateLastPage = navigatepageNums[navigatepageNums.length - 1];
|
navigateLastPage = navigatePageNums[navigatePageNums.length - 1];
|
||||||
if (pageNum > 1) {
|
if (pageNum > 1) {
|
||||||
prePage = 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;
|
isFirstPage = pageNum == 1;
|
||||||
isLastPage = pageNum == pages || pages == 0;
|
isLastPage = pageNum == pages || pages == 0;
|
||||||
;
|
|
||||||
hasPreviousPage = pageNum > 1;
|
hasPreviousPage = pageNum > 1;
|
||||||
hasNextPage = pageNum < pages;
|
hasNextPage = pageNum < pages;
|
||||||
}
|
}
|
||||||
@ -203,7 +196,7 @@ public class EsPageInfo<T> extends PageSerializable<T> {
|
|||||||
", hasPreviousPage=" + hasPreviousPage +
|
", hasPreviousPage=" + hasPreviousPage +
|
||||||
", hasNextPage=" + hasNextPage +
|
", hasNextPage=" + hasNextPage +
|
||||||
", navigatePages=" + navigatePages +
|
", navigatePages=" + navigatePages +
|
||||||
", navigatepageNums=" + Arrays.toString(navigatepageNums) +
|
", navigatepageNums=" + Arrays.toString(navigatePageNums) +
|
||||||
", navigateFirstPage=" + navigateFirstPage +
|
", navigateFirstPage=" + navigateFirstPage +
|
||||||
", navigateLastPage=" + navigateLastPage +
|
", navigateLastPage=" + navigateLastPage +
|
||||||
", total=" + total +
|
", total=" + total +
|
||||||
|
|||||||
@ -38,6 +38,7 @@ import org.elasticsearch.client.indices.PutMappingRequest;
|
|||||||
import org.elasticsearch.common.text.Text;
|
import org.elasticsearch.common.text.Text;
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
|
import org.elasticsearch.index.query.QueryBuilder;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
import org.elasticsearch.index.reindex.BulkByScrollResponse;
|
import org.elasticsearch.index.reindex.BulkByScrollResponse;
|
||||||
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
|
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
|
||||||
@ -248,9 +249,11 @@ public class BaseEsMapperImpl<T> implements BaseEsMapper<T> {
|
|||||||
} else {
|
} else {
|
||||||
// 不去重,直接count获取,效率更高
|
// 不去重,直接count获取,效率更高
|
||||||
CountRequest countRequest = new CountRequest(getIndexNames(wrapper.indexNames));
|
CountRequest countRequest = new CountRequest(getIndexNames(wrapper.indexNames));
|
||||||
BoolQueryBuilder boolQueryBuilder = WrapperProcessor.initBoolQueryBuilder(wrapper.baseEsParamList,
|
QueryBuilder queryBuilder = Optional.ofNullable(wrapper.searchSourceBuilder)
|
||||||
wrapper.enableMust2Filter, entityClass);
|
.map(SearchSourceBuilder::query)
|
||||||
countRequest.query(boolQueryBuilder);
|
.orElseGet(() -> WrapperProcessor.initBoolQueryBuilder(wrapper.baseEsParamList,
|
||||||
|
wrapper.enableMust2Filter, entityClass));
|
||||||
|
countRequest.query(queryBuilder);
|
||||||
CountResponse count;
|
CountResponse count;
|
||||||
try {
|
try {
|
||||||
printCountDSL(countRequest);
|
printCountDSL(countRequest);
|
||||||
@ -764,16 +767,13 @@ public class BaseEsMapperImpl<T> implements BaseEsMapper<T> {
|
|||||||
SearchRequest searchRequest = new SearchRequest(getIndexNames(wrapper.indexNames));
|
SearchRequest searchRequest = new SearchRequest(getIndexNames(wrapper.indexNames));
|
||||||
|
|
||||||
// 用户在wrapper中指定的混合查询条件优先级最高
|
// 用户在wrapper中指定的混合查询条件优先级最高
|
||||||
SearchSourceBuilder searchSourceBuilder;
|
SearchSourceBuilder searchSourceBuilder = Optional.ofNullable(wrapper.searchSourceBuilder)
|
||||||
if (Objects.isNull(wrapper.searchSourceBuilder)) {
|
.map(builder -> {
|
||||||
searchSourceBuilder = WrapperProcessor.buildSearchSourceBuilder(wrapper, entityClass);
|
|
||||||
} else {
|
|
||||||
searchSourceBuilder = wrapper.searchSourceBuilder;
|
|
||||||
// 兼容混合查询时用户在分页中自定义的分页参数
|
// 兼容混合查询时用户在分页中自定义的分页参数
|
||||||
Optional.ofNullable(wrapper.from).ifPresent(searchSourceBuilder::from);
|
Optional.ofNullable(wrapper.from).ifPresent(builder::from);
|
||||||
Optional.ofNullable(wrapper.size).ifPresent(searchSourceBuilder::size);
|
Optional.ofNullable(wrapper.size).ifPresent(builder::size);
|
||||||
}
|
return builder;
|
||||||
|
}).orElseGet(() -> WrapperProcessor.buildSearchSourceBuilder(wrapper, entityClass));
|
||||||
searchRequest.source(searchSourceBuilder);
|
searchRequest.source(searchSourceBuilder);
|
||||||
Optional.ofNullable(searchAfter).ifPresent(searchSourceBuilder::searchAfter);
|
Optional.ofNullable(searchAfter).ifPresent(searchSourceBuilder::searchAfter);
|
||||||
printDSL(searchRequest);
|
printDSL(searchRequest);
|
||||||
|
|||||||
@ -30,6 +30,12 @@ public class PageHelper {
|
|||||||
pageInfo.setPageNum(pageNum);
|
pageInfo.setPageNum(pageNum);
|
||||||
pageInfo.setPageSize(pageSize);
|
pageInfo.setPageSize(pageSize);
|
||||||
pageInfo.setPages((int) (total % pageSize > 0 ? total / pageSize + 1 : total / pageSize));
|
pageInfo.setPages((int) (total % pageSize > 0 ? total / pageSize + 1 : total / pageSize));
|
||||||
|
// 计算导航页
|
||||||
|
pageInfo.calcNavigatePageNums();
|
||||||
|
// 计算前后页,第一页,最后一页
|
||||||
|
pageInfo.calcPage();
|
||||||
|
// 判断页面边界
|
||||||
|
pageInfo.judgePageBoundary();
|
||||||
return pageInfo;
|
return pageInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
|
|
||||||
<name>easy-es-parent</name>
|
<name>easy-es-parent</name>
|
||||||
<description>easy use for elastic search</description>
|
<description>easy use for elastic search</description>
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>easy-es</artifactId>
|
<artifactId>easy-es</artifactId>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-boot-starter</artifactId>
|
<artifactId>easy-es-boot-starter</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>easy-es</artifactId>
|
<artifactId>easy-es</artifactId>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>easy-es-test</artifactId>
|
<artifactId>easy-es-test</artifactId>
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es</artifactId>
|
<artifactId>easy-es</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>1.1.1</version>
|
||||||
|
|
||||||
<name>easy-es</name>
|
<name>easy-es</name>
|
||||||
<description>easy use for elastic search</description>
|
<description>easy use for elastic search</description>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user