mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-06 17:18:57 +08:00
v0.9.30
新增功能: 前序迭代已支持了一部分父子类型的查询功能,此版本对父子类型功能闭环,至此,父子类型功能已完整支持,新增功能包括: 1.新增对父子类型索引自动托管及手动API维护的支持 2.新增父子类型通过父id查询的功能 项目调整: 1.从0.9.30版本起调整项目Maven中央仓库中的groupId由io.github.xpc1024调整为cn.easy-es,已发布的老版本不受影响. 2.项目所有包名由com.xpc调整为cn.easy-es打头 3.新增common,annotation,test子模块,并调整了原项目结构,让模块之间耦合进一步降低,提升可读性,更易于维护.为即将迎来的性能测试,压力测试等埋下伏笔. 体验优化: 1.enableMust2filter配置生效范围增加对in,notIn,between等类型查询的支持 2.进一步简化高亮功能的使用门槛,代价是牺牲了少量灵活性,Easy至上! 3.针对自动托管索引的平滑模式,提供了"拉弓还有回头箭"功能,在索引迁移因各种原因迁移失败后,自动清理失败的索引,原索引不受任何影响. 缺陷修复: 1.修复multiMatchQuery查询参数被重复封装2次的缺陷.
This commit is contained in:
parent
b4de669b8c
commit
39b362aef3
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -18,4 +18,10 @@
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-common</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
@ -16,9 +16,9 @@ import java.lang.annotation.Target;
|
||||
@TableField(exist = false)
|
||||
public @interface HighLightMappingField {
|
||||
/**
|
||||
* 高亮字段对应源数据库表字段
|
||||
* 指定的高亮字段名称
|
||||
*
|
||||
* @return 高亮返回字段名
|
||||
* @return 高亮字段名称
|
||||
*/
|
||||
String value();
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,9 +1,9 @@
|
||||
package cn.easyes.core.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldStrategy;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import cn.easyes.core.params.DefaultNestedClass;
|
||||
import cn.easyes.annotation.assist.DefaultNestedClass;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.anno;
|
||||
package cn.easyes.annotation.anno;
|
||||
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.annotation.assist;
|
||||
|
||||
/**
|
||||
* 默认嵌套类
|
||||
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
@ -21,16 +21,6 @@
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-core</artifactId>
|
||||
<version>0.9.21</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-extension</artifactId>
|
||||
<version>0.9.21</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.autoconfig.config;
|
||||
package cn.easyes.starter.config;
|
||||
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import lombok.Data;
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.autoconfig.config;
|
||||
package cn.easyes.starter.config;
|
||||
|
||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
||||
import cn.easyes.core.toolkit.StringUtils;
|
||||
import cn.easyes.common.utils.ExceptionUtils;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.auth.AuthScope;
|
||||
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||
@ -20,8 +20,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.COLON;
|
||||
import static cn.easyes.core.constants.BaseEsConstants.DEFAULT_SCHEMA;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.COLON;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.DEFAULT_SCHEMA;
|
||||
|
||||
/**
|
||||
* es自动配置
|
||||
@ -1,10 +1,10 @@
|
||||
package cn.easyes.autoconfig.factory;
|
||||
package cn.easyes.starter.factory;
|
||||
|
||||
|
||||
import cn.easyes.autoconfig.config.EasyEsConfigProperties;
|
||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
||||
import cn.easyes.starter.config.EasyEsConfigProperties;
|
||||
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.common.utils.ExceptionUtils;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.autoconfig.register;
|
||||
package cn.easyes.starter.register;
|
||||
|
||||
import cn.easyes.common.utils.ArrayUtils;
|
||||
import cn.easyes.core.conditions.interfaces.BaseEsMapper;
|
||||
import cn.easyes.core.toolkit.ArrayUtils;
|
||||
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.BeanDefinitionHolder;
|
||||
@ -1,7 +1,6 @@
|
||||
package cn.easyes.autoconfig.annotation;
|
||||
package cn.easyes.starter.register;
|
||||
|
||||
|
||||
import cn.easyes.autoconfig.register.MapperScannerRegister;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
@ -1,19 +1,19 @@
|
||||
package cn.easyes.autoconfig.register;
|
||||
package cn.easyes.starter.register;
|
||||
|
||||
import cn.easyes.autoconfig.config.EasyEsConfigProperties;
|
||||
import cn.easyes.autoconfig.factory.IndexStrategyFactory;
|
||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
||||
import cn.easyes.annotation.anno.Intercepts;
|
||||
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.common.utils.LogUtils;
|
||||
import cn.easyes.common.utils.TypeUtils;
|
||||
import cn.easyes.core.cache.BaseCache;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.core.proxy.EsMapperProxy;
|
||||
import cn.easyes.core.toolkit.LogUtils;
|
||||
import cn.easyes.core.toolkit.TypeUtils;
|
||||
import cn.easyes.extension.anno.Intercepts;
|
||||
import cn.easyes.extension.plugins.Interceptor;
|
||||
import cn.easyes.extension.plugins.InterceptorChain;
|
||||
import cn.easyes.extension.plugins.InterceptorChainHolder;
|
||||
import cn.easyes.extension.context.Interceptor;
|
||||
import cn.easyes.extension.context.InterceptorChain;
|
||||
import cn.easyes.extension.context.InterceptorChainHolder;
|
||||
import cn.easyes.starter.config.EasyEsConfigProperties;
|
||||
import cn.easyes.starter.factory.IndexStrategyFactory;
|
||||
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -1,7 +1,6 @@
|
||||
package cn.easyes.autoconfig.register;
|
||||
package cn.easyes.starter.register;
|
||||
|
||||
import cn.easyes.autoconfig.annotation.EsMapperScan;
|
||||
import cn.easyes.core.toolkit.LogUtils;
|
||||
import cn.easyes.common.utils.LogUtils;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.context.EnvironmentAware;
|
||||
import org.springframework.context.ResourceLoaderAware;
|
||||
@ -18,7 +17,7 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.ENABLE_PREFIX;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.ENABLE_PREFIX;
|
||||
|
||||
/**
|
||||
* 注册bean
|
||||
@ -28,6 +27,7 @@ import static cn.easyes.core.constants.BaseEsConstants.ENABLE_PREFIX;
|
||||
public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, ResourceLoaderAware, EnvironmentAware {
|
||||
private ResourceLoader resourceLoader;
|
||||
private Environment environment;
|
||||
|
||||
@Override
|
||||
public void setResourceLoader(ResourceLoader resourceLoader) {
|
||||
this.resourceLoader = resourceLoader;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.autoconfig.service;
|
||||
package cn.easyes.starter.service;
|
||||
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package cn.easyes.autoconfig.service.impl;
|
||||
package cn.easyes.starter.service.impl;
|
||||
|
||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.core.params.CreateIndexParam;
|
||||
import cn.easyes.core.params.EsIndexInfo;
|
||||
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.common.utils.LogUtils;
|
||||
import cn.easyes.core.biz.CreateIndexParam;
|
||||
import cn.easyes.core.biz.EntityInfo;
|
||||
import cn.easyes.core.biz.EsIndexInfo;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import cn.easyes.core.toolkit.IndexUtils;
|
||||
import cn.easyes.core.toolkit.LogUtils;
|
||||
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
@ -1,20 +1,20 @@
|
||||
package cn.easyes.autoconfig.service.impl;
|
||||
package cn.easyes.starter.service.impl;
|
||||
|
||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.core.params.CreateIndexParam;
|
||||
import cn.easyes.core.params.EsIndexInfo;
|
||||
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.common.utils.LogUtils;
|
||||
import cn.easyes.core.biz.CreateIndexParam;
|
||||
import cn.easyes.core.biz.EntityInfo;
|
||||
import cn.easyes.core.biz.EsIndexInfo;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import cn.easyes.core.toolkit.IndexUtils;
|
||||
import cn.easyes.core.toolkit.LogUtils;
|
||||
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.S1_SUFFIX;
|
||||
import static cn.easyes.core.constants.BaseEsConstants.SO_SUFFIX;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.S1_SUFFIX;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.SO_SUFFIX;
|
||||
|
||||
/**
|
||||
* 自动平滑托管索引实现类,本框架默认模式,过程零停机,数据会自动转移至新索引
|
||||
@ -1,6 +1,6 @@
|
||||
# Auto Configure
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
cn.easyes.autoconfig.config.EsAutoConfiguration,\
|
||||
cn.easyes.autoconfig.factory.IndexStrategyFactory,\
|
||||
cn.easyes.autoconfig.service.impl.AutoProcessIndexSmoothlyServiceImpl,\
|
||||
cn.easyes.autoconfig.service.impl.AutoProcessIndexNotSmoothlyServiceImpl
|
||||
cn.easyes.starter.config.EsAutoConfiguration,\
|
||||
cn.easyes.starter.factory.IndexStrategyFactory,\
|
||||
cn.easyes.starter.service.impl.AutoProcessIndexSmoothlyServiceImpl,\
|
||||
cn.easyes.starter.service.impl.AutoProcessIndexNotSmoothlyServiceImpl
|
||||
|
||||
43
easy-es-common/pom.xml
Normal file
43
easy-es-common/pom.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>0.9.30</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>easy-es-common</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch.client</groupId>
|
||||
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch</groupId>
|
||||
<artifactId>elasticsearch</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.constants;
|
||||
package cn.easyes.common.constants;
|
||||
|
||||
/**
|
||||
* EasyEs的常量
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
/**
|
||||
* 聚合枚举
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
/**
|
||||
* 字段策略枚举
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
/**
|
||||
* 主键类型枚举
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
/**
|
||||
* 嵌套及父子类型枚举
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.enums;
|
||||
package cn.easyes.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.exception;
|
||||
package cn.easyes.common.exception;
|
||||
|
||||
/**
|
||||
* EasyEs异常类
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
package cn.easyes.common.params;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
/**
|
||||
* array工具类
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.utils;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.UndeclaredThrowableException;
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
|
||||
import cn.easyes.core.exception.EasyEsException;
|
||||
import cn.easyes.common.exception.EasyEsException;
|
||||
|
||||
/**
|
||||
* 异常辅助工具类
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
||||
import lombok.AccessLevel;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
/**
|
||||
* 字符串工具类
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
package cn.easyes.common.utils;
|
||||
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -20,20 +20,8 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch.client</groupId>
|
||||
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch</groupId>
|
||||
<artifactId>elasticsearch</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-extension</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import cn.easyes.core.enums.AggregationTypeEnum;
|
||||
import cn.easyes.common.enums.AggregationTypeEnum;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
@ -1,11 +1,11 @@
|
||||
package cn.easyes.core.common;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import cn.easyes.core.anno.TableField;
|
||||
import cn.easyes.annotation.anno.TableField;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
import com.alibaba.fastjson.serializer.NameFilter;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
@ -1,10 +1,10 @@
|
||||
package cn.easyes.core.common;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import com.alibaba.fastjson.PropertyNamingStrategy;
|
||||
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.common;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.common;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.common;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.core.params;
|
||||
package cn.easyes.core.biz;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@ -1,10 +1,10 @@
|
||||
package cn.easyes.core.cache;
|
||||
|
||||
import cn.easyes.core.conditions.BaseEsMapperImpl;
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.core.toolkit.CollectionUtils;
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.common.utils.CollectionUtils;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
||||
import cn.easyes.common.utils.ExceptionUtils;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.biz.OrderByParam;
|
||||
import cn.easyes.core.conditions.interfaces.*;
|
||||
import cn.easyes.core.common.OrderByParam;
|
||||
import org.apache.lucene.search.join.ScoreMode;
|
||||
import org.elasticsearch.common.geo.GeoPoint;
|
||||
import org.elasticsearch.common.geo.ShapeRelation;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
|
||||
/**
|
||||
* 抽象Lambda表达式父类
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
|
||||
/**
|
||||
* 抽象Lambda表达式父类
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.common.OrderByParam;
|
||||
import cn.easyes.common.enums.*;
|
||||
import cn.easyes.common.utils.*;
|
||||
import cn.easyes.core.biz.*;
|
||||
import cn.easyes.core.conditions.interfaces.*;
|
||||
import cn.easyes.core.enums.*;
|
||||
import cn.easyes.core.params.*;
|
||||
import cn.easyes.core.toolkit.*;
|
||||
import org.apache.lucene.search.join.ScoreMode;
|
||||
import org.elasticsearch.common.geo.GeoPoint;
|
||||
import org.elasticsearch.common.geo.ShapeRelation;
|
||||
@ -18,10 +17,10 @@ import java.util.*;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static cn.easyes.core.enums.BaseEsParamTypeEnum.*;
|
||||
import static cn.easyes.core.enums.EsAttachTypeEnum.*;
|
||||
import static cn.easyes.core.enums.EsQueryTypeEnum.*;
|
||||
import static cn.easyes.core.enums.JoinTypeEnum.*;
|
||||
import static cn.easyes.common.enums.BaseEsParamTypeEnum.*;
|
||||
import static cn.easyes.common.enums.EsAttachTypeEnum.*;
|
||||
import static cn.easyes.common.enums.EsQueryTypeEnum.*;
|
||||
import static cn.easyes.common.enums.JoinTypeEnum.*;
|
||||
|
||||
/**
|
||||
* 抽象Lambda表达式父类
|
||||
|
||||
@ -1,18 +1,17 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.common.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
import cn.easyes.common.utils.*;
|
||||
import cn.easyes.core.biz.*;
|
||||
import cn.easyes.core.cache.BaseCache;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.common.EntityFieldInfo;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.common.PageInfo;
|
||||
import cn.easyes.core.conditions.interfaces.BaseEsMapper;
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.core.enums.FieldStrategy;
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.core.params.CreateIndexParam;
|
||||
import cn.easyes.core.params.EsIndexParam;
|
||||
import cn.easyes.core.params.EsUpdateParam;
|
||||
import cn.easyes.core.toolkit.*;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import cn.easyes.core.toolkit.IndexUtils;
|
||||
import cn.easyes.core.toolkit.PageHelper;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.biz.EsIndexParam;
|
||||
import cn.easyes.core.conditions.interfaces.Index;
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import cn.easyes.core.params.EsIndexParam;
|
||||
import cn.easyes.core.toolkit.StringUtils;
|
||||
import org.elasticsearch.action.search.SearchRequest;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
||||
|
||||
@ -1,12 +1,8 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.common.EntityFieldInfo;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
import cn.easyes.core.biz.*;
|
||||
import cn.easyes.core.conditions.interfaces.Query;
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.core.params.AggregationParam;
|
||||
import cn.easyes.core.params.BaseEsParam;
|
||||
import cn.easyes.core.params.HighLightParam;
|
||||
import cn.easyes.core.params.SortParam;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import org.elasticsearch.action.search.SearchRequest;
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
import cn.easyes.core.biz.BaseEsParam;
|
||||
import cn.easyes.core.biz.EsUpdateParam;
|
||||
import cn.easyes.core.conditions.interfaces.Update;
|
||||
import cn.easyes.core.params.BaseEsParam;
|
||||
import cn.easyes.core.params.EsUpdateParam;
|
||||
import org.elasticsearch.action.search.SearchRequest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -19,6 +19,7 @@ public class LambdaEsUpdateWrapper<T> extends AbstractLambdaUpdateWrapper<T, Lam
|
||||
implements Update<LambdaEsUpdateWrapper<T>, SFunction<T, ?>> {
|
||||
|
||||
List<EsUpdateParam> updateParamList;
|
||||
|
||||
/**
|
||||
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(entity)
|
||||
*/
|
||||
|
||||
@ -10,6 +10,7 @@ import org.elasticsearch.action.search.SearchRequest;
|
||||
public abstract class Wrapper<T> {
|
||||
/**
|
||||
* 获取查询条件 待优化
|
||||
*
|
||||
* @return 查询条件
|
||||
*/
|
||||
protected abstract SearchRequest getSearchRequest();
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
package cn.easyes.core.conditions;
|
||||
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.common.enums.AggregationTypeEnum;
|
||||
import cn.easyes.common.utils.ArrayUtils;
|
||||
import cn.easyes.common.utils.CollectionUtils;
|
||||
import cn.easyes.common.utils.MyOptional;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.biz.*;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.enums.AggregationTypeEnum;
|
||||
import cn.easyes.core.params.AggregationParam;
|
||||
import cn.easyes.core.params.BaseEsParam;
|
||||
import cn.easyes.core.params.GeoParam;
|
||||
import cn.easyes.core.params.OrCount;
|
||||
import cn.easyes.core.toolkit.*;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||
import cn.easyes.core.toolkit.EsQueryTypeUtil;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.elasticsearch.index.query.*;
|
||||
@ -22,9 +24,9 @@ import org.elasticsearch.search.sort.SortOrder;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
||||
import static cn.easyes.core.enums.BaseEsParamTypeEnum.*;
|
||||
import static cn.easyes.core.enums.EsAttachTypeEnum.*;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.*;
|
||||
import static cn.easyes.common.enums.BaseEsParamTypeEnum.*;
|
||||
import static cn.easyes.common.enums.EsAttachTypeEnum.*;
|
||||
|
||||
/**
|
||||
* 核心 wrpeer处理类
|
||||
|
||||
@ -3,7 +3,7 @@ package cn.easyes.core.conditions.interfaces;
|
||||
import cn.easyes.core.conditions.LambdaEsIndexWrapper;
|
||||
import cn.easyes.core.conditions.LambdaEsQueryWrapper;
|
||||
import cn.easyes.core.conditions.LambdaEsUpdateWrapper;
|
||||
import cn.easyes.core.common.PageInfo;
|
||||
import cn.easyes.core.biz.PageInfo;
|
||||
import org.elasticsearch.action.search.SearchRequest;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.action.search.SearchScrollRequest;
|
||||
|
||||
@ -9,7 +9,7 @@ import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiPredicate;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.*;
|
||||
|
||||
/**
|
||||
* 比较相关
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
|
||||
import cn.easyes.core.common.OrderByParam;
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.core.biz.OrderByParam;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import org.elasticsearch.search.sort.SortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
|
||||
import cn.easyes.core.toolkit.CollectionUtils;
|
||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
||||
import cn.easyes.common.utils.CollectionUtils;
|
||||
import cn.easyes.common.utils.ExceptionUtils;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import org.elasticsearch.common.geo.GeoPoint;
|
||||
import org.elasticsearch.common.geo.ShapeRelation;
|
||||
@ -13,7 +13,7 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.DEFAULT_BOOST;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.DEFAULT_BOOST;
|
||||
|
||||
/**
|
||||
* 地理位置
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
|
||||
import org.apache.lucene.search.join.ScoreMode;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.conditions.interfaces;
|
||||
|
||||
import cn.easyes.core.common.EntityFieldInfo;
|
||||
import cn.easyes.core.biz.EntityFieldInfo;
|
||||
import cn.easyes.core.toolkit.FieldUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package cn.easyes.core.config;
|
||||
|
||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.core.enums.FieldStrategy;
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.core.enums.RefreshPolicy;
|
||||
import cn.easyes.common.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||
import cn.easyes.common.enums.RefreshPolicy;
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.EMPTY_STR;
|
||||
import static cn.easyes.common.constants.BaseEsConstants.EMPTY_STR;
|
||||
|
||||
/**
|
||||
* easy-es全局置项
|
||||
|
||||
@ -1,20 +1,24 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.annotation.anno.HighLightMappingField;
|
||||
import cn.easyes.annotation.anno.TableField;
|
||||
import cn.easyes.annotation.anno.TableId;
|
||||
import cn.easyes.annotation.anno.TableName;
|
||||
import cn.easyes.annotation.assist.DefaultNestedClass;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
import cn.easyes.common.utils.ClassUtils;
|
||||
import cn.easyes.common.utils.FastJsonUtils;
|
||||
import cn.easyes.common.utils.ReflectionKit;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.biz.EntityFieldInfo;
|
||||
import cn.easyes.core.biz.EntityInfo;
|
||||
import cn.easyes.core.cache.BaseCache;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
||||
import com.alibaba.fastjson.serializer.NameFilter;
|
||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
||||
import cn.easyes.core.anno.HighLightMappingField;
|
||||
import cn.easyes.core.anno.TableField;
|
||||
import cn.easyes.core.anno.TableId;
|
||||
import cn.easyes.core.anno.TableName;
|
||||
import cn.easyes.core.cache.BaseCache;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.common.EntityFieldInfo;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.core.params.DefaultNestedClass;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.common.enums.EsAttachTypeEnum;
|
||||
import cn.easyes.common.enums.EsQueryTypeEnum;
|
||||
import cn.easyes.common.enums.JoinTypeEnum;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.biz.BaseEsParam;
|
||||
import cn.easyes.core.biz.EntityInfo;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.enums.JoinTypeEnum;
|
||||
import cn.easyes.core.params.BaseEsParam;
|
||||
import org.apache.lucene.search.join.ScoreMode;
|
||||
import org.elasticsearch.index.query.*;
|
||||
import org.elasticsearch.join.query.HasChildQueryBuilder;
|
||||
@ -13,10 +17,6 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
||||
import static cn.easyes.core.enums.EsAttachTypeEnum.*;
|
||||
import static cn.easyes.core.enums.EsQueryTypeEnum.*;
|
||||
|
||||
/**
|
||||
* 核心 查询参数封装工具类
|
||||
* <p>
|
||||
@ -51,30 +51,30 @@ public class EsQueryTypeUtil {
|
||||
}
|
||||
|
||||
// 封装查询参数
|
||||
if (Objects.equals(queryType, TERM_QUERY.getType())) {
|
||||
if (Objects.equals(queryType, EsQueryTypeEnum.TERM_QUERY.getType())) {
|
||||
// 封装精确查询参数
|
||||
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(field, value).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, termQueryBuilder);
|
||||
} else if (Objects.equals(queryType, TERMS_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.TERMS_QUERY.getType())) {
|
||||
// 此处兼容由or转入shouldList的in参数
|
||||
Collection<?> values = Objects.isNull(value) ? model.getValues() : (Collection<?>) value;
|
||||
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(field, values).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, termsQueryBuilder);
|
||||
} else if (Objects.equals(queryType, MATCH_PHASE.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.MATCH_PHASE.getType())) {
|
||||
// 封装模糊分词查询参数(分词必须按原关键词顺序)
|
||||
MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery(field, value).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, matchPhraseQueryBuilder);
|
||||
} else if (Objects.equals(queryType, MATCH_PHRASE_PREFIX.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.MATCH_PHRASE_PREFIX.getType())) {
|
||||
MatchPhrasePrefixQueryBuilder matchPhrasePrefixQueryBuilder = QueryBuilders.matchPhrasePrefixQuery(field, value)
|
||||
.maxExpansions((Integer) model.getExt()).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, matchPhrasePrefixQueryBuilder);
|
||||
} else if (Objects.equals(queryType, PREFIX_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.PREFIX_QUERY.getType())) {
|
||||
PrefixQueryBuilder prefixQueryBuilder = QueryBuilders.prefixQuery(field, value.toString()).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, prefixQueryBuilder);
|
||||
} else if (Objects.equals(queryType, QUERY_STRING_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.QUERY_STRING_QUERY.getType())) {
|
||||
QueryStringQueryBuilder queryStringQueryBuilder = QueryBuilders.queryStringQuery(value.toString()).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, queryStringQueryBuilder);
|
||||
} else if (Objects.equals(queryType, MATCH_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.MATCH_QUERY.getType())) {
|
||||
// 封装模糊分词查询参数(可无序)
|
||||
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(field, value).boost(boost);
|
||||
if (StringUtils.isBlank(path)) {
|
||||
@ -82,7 +82,7 @@ public class EsQueryTypeUtil {
|
||||
} else {
|
||||
// 嵌套类型
|
||||
if (JoinTypeEnum.NESTED.equals(model.getExt())) {
|
||||
matchQueryBuilder = QueryBuilders.matchQuery(path + PATH_FIELD_JOIN + field, value).boost(boost);
|
||||
matchQueryBuilder = QueryBuilders.matchQuery(path + BaseEsConstants.PATH_FIELD_JOIN + field, value).boost(boost);
|
||||
NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery(model.getPath(), matchQueryBuilder, (ScoreMode) model.getScoreMode());
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, nestedQueryBuilder);
|
||||
} else if (JoinTypeEnum.HAS_CHILD.equals(model.getExt())) {
|
||||
@ -93,31 +93,31 @@ public class EsQueryTypeUtil {
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, hasParentQueryBuilder);
|
||||
}
|
||||
}
|
||||
} else if (Objects.equals(queryType, RANGE_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.RANGE_QUERY.getType())) {
|
||||
// 封装范围查询参数
|
||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(field).boost(boost);
|
||||
if (Objects.equals(originalAttachType, GT.getType())) {
|
||||
if (Objects.equals(originalAttachType, EsAttachTypeEnum.GT.getType())) {
|
||||
rangeQueryBuilder.gt(value);
|
||||
} else if (Objects.equals(originalAttachType, LT.getType())) {
|
||||
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.LT.getType())) {
|
||||
rangeQueryBuilder.lt(value);
|
||||
} else if (Objects.equals(originalAttachType, GE.getType())) {
|
||||
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.GE.getType())) {
|
||||
rangeQueryBuilder.gte(value);
|
||||
} else if (Objects.equals(originalAttachType, LE.getType())) {
|
||||
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.LE.getType())) {
|
||||
rangeQueryBuilder.lte(value);
|
||||
}
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, rangeQueryBuilder);
|
||||
} else if (Objects.equals(queryType, EXISTS_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.EXISTS_QUERY.getType())) {
|
||||
// 封装是否存在查询参数
|
||||
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery(field).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, existsQueryBuilder);
|
||||
} else if (Objects.equals(queryType, WILDCARD_QUERY.getType())) {
|
||||
} else if (Objects.equals(queryType, EsQueryTypeEnum.WILDCARD_QUERY.getType())) {
|
||||
String query;
|
||||
if (Objects.equals(attachType, LIKE_LEFT.getType())) {
|
||||
query = WILDCARD_SIGN + value;
|
||||
} else if (Objects.equals(attachType, LIKE_RIGHT.getType())) {
|
||||
query = value + WILDCARD_SIGN;
|
||||
if (Objects.equals(attachType, EsAttachTypeEnum.LIKE_LEFT.getType())) {
|
||||
query = BaseEsConstants.WILDCARD_SIGN + value;
|
||||
} else if (Objects.equals(attachType, EsAttachTypeEnum.LIKE_RIGHT.getType())) {
|
||||
query = value + BaseEsConstants.WILDCARD_SIGN;
|
||||
} else {
|
||||
query = WILDCARD_SIGN + value + WILDCARD_SIGN;
|
||||
query = BaseEsConstants.WILDCARD_SIGN + value + BaseEsConstants.WILDCARD_SIGN;
|
||||
}
|
||||
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(field, query).boost(boost);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, wildcardQueryBuilder);
|
||||
@ -140,12 +140,12 @@ public class EsQueryTypeUtil {
|
||||
*/
|
||||
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType, boolean enableMust2Filter,
|
||||
List<String> fields, Object value, Object ext, Integer minShouldMatch, Float boost) {
|
||||
if (Objects.equals(queryType, MULTI_MATCH_QUERY.getType())) {
|
||||
if (Objects.equals(queryType, EsQueryTypeEnum.MULTI_MATCH_QUERY.getType())) {
|
||||
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(value, fields.toArray(new String[0])).boost(boost);
|
||||
if (ext instanceof Operator) {
|
||||
Operator operator = (Operator) ext;
|
||||
multiMatchQueryBuilder.operator(operator);
|
||||
multiMatchQueryBuilder.minimumShouldMatch(minShouldMatch + PERCENT);
|
||||
multiMatchQueryBuilder.minimumShouldMatch(minShouldMatch + BaseEsConstants.PERCENT);
|
||||
}
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, multiMatchQueryBuilder);
|
||||
}
|
||||
@ -165,7 +165,7 @@ public class EsQueryTypeUtil {
|
||||
*/
|
||||
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType,
|
||||
boolean enableMust2Filter, String field, Object leftValue, Object rightValue, Float boost) {
|
||||
if (Objects.equals(queryType, INTERVAL_QUERY.getType())) {
|
||||
if (Objects.equals(queryType, EsQueryTypeEnum.INTERVAL_QUERY.getType())) {
|
||||
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(field).boost(boost);
|
||||
rangeQueryBuilder.gte(leftValue).lte(rightValue);
|
||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, rangeQueryBuilder);
|
||||
@ -182,22 +182,22 @@ public class EsQueryTypeUtil {
|
||||
*/
|
||||
private static void setQueryBuilder(BoolQueryBuilder boolQueryBuilder, Integer attachType, boolean enableMust2Filter,
|
||||
QueryBuilder queryBuilder) {
|
||||
boolean must = Objects.equals(attachType, MUST.getType()) || Objects.equals(attachType, GT.getType())
|
||||
|| Objects.equals(attachType, LT.getType()) || Objects.equals(attachType, GE.getType())
|
||||
|| Objects.equals(attachType, LE.getType()) || Objects.equals(attachType, IN.getType())
|
||||
|| Objects.equals(attachType, BETWEEN.getType()) || Objects.equals(attachType, EXISTS.getType())
|
||||
|| Objects.equals(attachType, LIKE_LEFT.getType()) || Objects.equals(attachType, LIKE_RIGHT.getType());
|
||||
boolean mustNot = Objects.equals(attachType, MUST_NOT.getType()) || Objects.equals(attachType, NOT_IN.getType())
|
||||
|| Objects.equals(attachType, NOT_EXISTS.getType()) || Objects.equals(attachType, NOT_BETWEEN.getType());
|
||||
boolean must = Objects.equals(attachType, EsAttachTypeEnum.MUST.getType()) || Objects.equals(attachType, EsAttachTypeEnum.GT.getType())
|
||||
|| Objects.equals(attachType, EsAttachTypeEnum.LT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.GE.getType())
|
||||
|| Objects.equals(attachType, EsAttachTypeEnum.LE.getType()) || Objects.equals(attachType, EsAttachTypeEnum.IN.getType())
|
||||
|| Objects.equals(attachType, EsAttachTypeEnum.BETWEEN.getType()) || Objects.equals(attachType, EsAttachTypeEnum.EXISTS.getType())
|
||||
|| Objects.equals(attachType, EsAttachTypeEnum.LIKE_LEFT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.LIKE_RIGHT.getType());
|
||||
boolean mustNot = Objects.equals(attachType, EsAttachTypeEnum.MUST_NOT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.NOT_IN.getType())
|
||||
|| Objects.equals(attachType, EsAttachTypeEnum.NOT_EXISTS.getType()) || Objects.equals(attachType, EsAttachTypeEnum.NOT_BETWEEN.getType());
|
||||
if (must) {
|
||||
if (enableMust2Filter) {
|
||||
boolQueryBuilder.filter(queryBuilder);
|
||||
} else {
|
||||
boolQueryBuilder.must(queryBuilder);
|
||||
}
|
||||
} else if (Objects.equals(attachType, FILTER.getType())) {
|
||||
} else if (Objects.equals(attachType, EsAttachTypeEnum.FILTER.getType())) {
|
||||
boolQueryBuilder.filter(queryBuilder);
|
||||
} else if (Objects.equals(attachType, SHOULD.getType())) {
|
||||
} else if (Objects.equals(attachType, EsAttachTypeEnum.SHOULD.getType())) {
|
||||
boolQueryBuilder.should(queryBuilder);
|
||||
} else if (mustNot) {
|
||||
boolQueryBuilder.mustNot(queryBuilder);
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.common.params.SFunction;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
import cn.easyes.common.enums.JdkDataTypeEnum;
|
||||
import cn.easyes.common.utils.CollectionUtils;
|
||||
import cn.easyes.common.utils.ExceptionUtils;
|
||||
import cn.easyes.common.utils.LogUtils;
|
||||
import cn.easyes.common.utils.StringUtils;
|
||||
import cn.easyes.core.biz.*;
|
||||
import cn.easyes.core.cache.GlobalConfigCache;
|
||||
import cn.easyes.core.common.EntityFieldInfo;
|
||||
import cn.easyes.core.common.EntityInfo;
|
||||
import cn.easyes.core.config.GlobalConfig;
|
||||
import cn.easyes.core.constants.BaseEsConstants;
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import cn.easyes.core.enums.JdkDataTypeEnum;
|
||||
import cn.easyes.core.params.CreateIndexParam;
|
||||
import cn.easyes.core.params.EsIndexInfo;
|
||||
import cn.easyes.core.params.EsIndexParam;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
@ -34,7 +34,6 @@ import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
||||
|
||||
/**
|
||||
* 索引工具类
|
||||
@ -154,7 +153,7 @@ public class IndexUtils {
|
||||
IndicesAliasesRequest.AliasActions aliasActions =
|
||||
new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD);
|
||||
aliasActions.index(indexName);
|
||||
aliasActions.alias(DEFAULT_ALIAS);
|
||||
aliasActions.alias(BaseEsConstants.DEFAULT_ALIAS);
|
||||
indicesAliasesRequest.addAliasAction(aliasActions);
|
||||
try {
|
||||
client.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
|
||||
@ -176,8 +175,8 @@ public class IndexUtils {
|
||||
ReindexRequest reindexRequest = new ReindexRequest();
|
||||
reindexRequest.setSourceIndices(oldIndexName);
|
||||
reindexRequest.setDestIndex(releaseIndexName);
|
||||
reindexRequest.setDestOpType(DEFAULT_DEST_OP_TYPE);
|
||||
reindexRequest.setConflicts(DEFAULT_CONFLICTS);
|
||||
reindexRequest.setDestOpType(BaseEsConstants.DEFAULT_DEST_OP_TYPE);
|
||||
reindexRequest.setConflicts(BaseEsConstants.DEFAULT_CONFLICTS);
|
||||
reindexRequest.setRefresh(Boolean.TRUE);
|
||||
try {
|
||||
BulkByScrollResponse response = client.reindex(reindexRequest, RequestOptions.DEFAULT);
|
||||
@ -207,7 +206,7 @@ public class IndexUtils {
|
||||
.flatMap(aliases -> Optional.ofNullable(aliases.get(indexName)))
|
||||
.ifPresent(aliasMetadataList ->
|
||||
aliasMetadataList.forEach(aliasMetadata -> {
|
||||
if (DEFAULT_ALIAS.equals(aliasMetadata.alias())) {
|
||||
if (BaseEsConstants.DEFAULT_ALIAS.equals(aliasMetadata.alias())) {
|
||||
esIndexInfo.setHasDefaultAlias(Boolean.TRUE);
|
||||
}
|
||||
}));
|
||||
@ -216,10 +215,10 @@ public class IndexUtils {
|
||||
Optional.ofNullable(getIndexResponse.getSettings())
|
||||
.flatMap(settingsMap -> Optional.ofNullable(settingsMap.get(indexName)))
|
||||
.ifPresent(p -> {
|
||||
String shardsNumStr = p.get(SHARDS_NUM_KEY);
|
||||
String shardsNumStr = p.get(BaseEsConstants.SHARDS_NUM_KEY);
|
||||
Optional.ofNullable(shardsNumStr)
|
||||
.ifPresent(s -> esIndexInfo.setShardsNum(Integer.parseInt(s)));
|
||||
String replicasNumStr = p.get(REPLICAS_NUM_KEY);
|
||||
String replicasNumStr = p.get(BaseEsConstants.REPLICAS_NUM_KEY);
|
||||
Optional.ofNullable(replicasNumStr)
|
||||
.ifPresent(r -> esIndexInfo.setReplicasNum(Integer.parseInt(r)));
|
||||
});
|
||||
@ -310,7 +309,7 @@ public class IndexUtils {
|
||||
|
||||
indexParamList.forEach(indexParam -> {
|
||||
Map<String, Object> info = new HashMap<>();
|
||||
Optional.ofNullable(indexParam.getDateFormat()).ifPresent(format -> info.put(FORMAT, indexParam.getDateFormat()));
|
||||
Optional.ofNullable(indexParam.getDateFormat()).ifPresent(format -> info.put(BaseEsConstants.FORMAT, indexParam.getDateFormat()));
|
||||
info.put(BaseEsConstants.TYPE, indexParam.getFieldType());
|
||||
// 设置分词器
|
||||
if (FieldType.TEXT.getType().equals(indexParam.getFieldType())) {
|
||||
@ -344,9 +343,9 @@ public class IndexUtils {
|
||||
*/
|
||||
public static boolean changeAliasAtomic(RestHighLevelClient client, String oldIndexName, String releaseIndexName) {
|
||||
IndicesAliasesRequest.AliasActions addIndexAction = new IndicesAliasesRequest.AliasActions(
|
||||
IndicesAliasesRequest.AliasActions.Type.ADD).index(releaseIndexName).alias(DEFAULT_ALIAS);
|
||||
IndicesAliasesRequest.AliasActions.Type.ADD).index(releaseIndexName).alias(BaseEsConstants.DEFAULT_ALIAS);
|
||||
IndicesAliasesRequest.AliasActions removeAction = new IndicesAliasesRequest.AliasActions(
|
||||
IndicesAliasesRequest.AliasActions.Type.REMOVE).index(oldIndexName).alias(DEFAULT_ALIAS);
|
||||
IndicesAliasesRequest.AliasActions.Type.REMOVE).index(oldIndexName).alias(BaseEsConstants.DEFAULT_ALIAS);
|
||||
|
||||
IndicesAliasesRequest indicesAliasesRequest = new IndicesAliasesRequest();
|
||||
indicesAliasesRequest.addAliasAction(addIndexAction);
|
||||
@ -487,7 +486,7 @@ public class IndexUtils {
|
||||
|
||||
// 重试 看加了后缀的_s0 和_s1是否存在
|
||||
for (int i = 0; i <= 1; i++) {
|
||||
String retryIndexName = entityInfo.getIndexName() + S_SUFFIX + i;
|
||||
String retryIndexName = entityInfo.getIndexName() + BaseEsConstants.S_SUFFIX + i;
|
||||
exists = IndexUtils.existsIndex(client, retryIndexName);
|
||||
if (exists) {
|
||||
entityInfo.setRetrySuccessIndexName(retryIndexName);
|
||||
@ -513,14 +512,14 @@ public class IndexUtils {
|
||||
}
|
||||
try {
|
||||
// 尝试获取分布式锁
|
||||
boolean lock = LockUtils.tryLock(client, entityClass.getSimpleName().toLowerCase(), LOCK_MAX_RETRY);
|
||||
boolean lock = LockUtils.tryLock(client, entityClass.getSimpleName().toLowerCase(), BaseEsConstants.LOCK_MAX_RETRY);
|
||||
if (!lock) {
|
||||
LogUtils.warn("retry get distribute lock failed, please check whether other resources have been preempted or deadlocked");
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
return biFunction.apply(entityClass, client);
|
||||
} finally {
|
||||
LockUtils.release(client, entityClass.getSimpleName().toLowerCase(), LOCK_MAX_RETRY);
|
||||
LockUtils.release(client, entityClass.getSimpleName().toLowerCase(), BaseEsConstants.LOCK_MAX_RETRY);
|
||||
}
|
||||
}).exceptionally((throwable) -> {
|
||||
Optional.ofNullable(throwable).ifPresent(e -> LogUtils.error("process index exception", e.toString()));
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.common.constants.BaseEsConstants;
|
||||
import org.elasticsearch.action.delete.DeleteRequest;
|
||||
import org.elasticsearch.action.delete.DeleteResponse;
|
||||
import org.elasticsearch.action.index.IndexRequest;
|
||||
@ -15,8 +16,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
||||
|
||||
/**
|
||||
* 基于es写的轻量级分布式锁,仅供框架内部使用,可避免引入redis/zk等其它依赖
|
||||
* <p>
|
||||
@ -50,11 +49,11 @@ public class LockUtils {
|
||||
IndexUtils.createEmptyIndex(client, LOCK_INDEX);
|
||||
}
|
||||
|
||||
if (maxRetry <= ZERO) {
|
||||
if (maxRetry <= BaseEsConstants.ZERO) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
if (getCount(client, idValue) > ZERO) {
|
||||
if (getCount(client, idValue) > BaseEsConstants.ZERO) {
|
||||
try {
|
||||
Thread.sleep(WAIT_SECONDS / maxRetry);
|
||||
} catch (InterruptedException e) {
|
||||
@ -76,7 +75,7 @@ public class LockUtils {
|
||||
private static boolean createLock(RestHighLevelClient client, String idValue) {
|
||||
IndexRequest indexRequest = new IndexRequest(LOCK_INDEX);
|
||||
indexRequest.id(idValue);
|
||||
indexRequest.source(DISTRIBUTED_LOCK_TIP_JSON, XContentType.JSON);
|
||||
indexRequest.source(BaseEsConstants.DISTRIBUTED_LOCK_TIP_JSON, XContentType.JSON);
|
||||
IndexResponse response;
|
||||
try {
|
||||
response = client.index(indexRequest, RequestOptions.DEFAULT);
|
||||
@ -98,7 +97,7 @@ public class LockUtils {
|
||||
public synchronized static boolean release(RestHighLevelClient client, String idValue, Integer maxRetry) {
|
||||
DeleteRequest deleteRequest = new DeleteRequest(LOCK_INDEX);
|
||||
deleteRequest.id(idValue);
|
||||
if (maxRetry <= ZERO) {
|
||||
if (maxRetry <= BaseEsConstants.ZERO) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
@ -150,7 +149,7 @@ public class LockUtils {
|
||||
response = client.search(searchRequest, RequestOptions.DEFAULT);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return ONE;
|
||||
return BaseEsConstants.ONE;
|
||||
}
|
||||
return (int) response.getHits().getTotalHits().value;
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.core.toolkit;
|
||||
|
||||
import cn.easyes.core.common.PageInfo;
|
||||
import cn.easyes.core.biz.PageInfo;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
<relativePath>../easy-es-parent</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -18,4 +18,11 @@
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-annotation</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -1,4 +1,6 @@
|
||||
package cn.easyes.extension.plugins;
|
||||
package cn.easyes.extension.context;
|
||||
|
||||
import cn.easyes.extension.plugins.Plugin;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.plugins;
|
||||
package cn.easyes.extension.context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.plugins;
|
||||
package cn.easyes.extension.context;
|
||||
|
||||
/**
|
||||
* interceptorChain上下文
|
||||
@ -1,4 +1,4 @@
|
||||
package cn.easyes.extension.plugins;
|
||||
package cn.easyes.extension.context;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
@ -1,9 +1,11 @@
|
||||
package cn.easyes.extension.plugins;
|
||||
|
||||
|
||||
import cn.easyes.extension.anno.Intercepts;
|
||||
import cn.easyes.extension.anno.Signature;
|
||||
import cn.easyes.extension.utils.ExceptionUtil;
|
||||
import cn.easyes.annotation.anno.Intercepts;
|
||||
import cn.easyes.annotation.anno.Signature;
|
||||
import cn.easyes.common.utils.ExceptionUtil;
|
||||
import cn.easyes.extension.context.Interceptor;
|
||||
import cn.easyes.extension.context.Invocation;
|
||||
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-parent</artifactId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
|
||||
<name>easy-es-parent</name>
|
||||
<description>easy use for elastic search</description>
|
||||
@ -20,10 +20,11 @@
|
||||
</licenses>
|
||||
|
||||
<modules>
|
||||
<module>../easy-es-core</module>
|
||||
<module>../easy-es-boot-starter</module>
|
||||
<module>../easy-es-core</module>
|
||||
<module>../easy-es-extension</module>
|
||||
<module>../easy-es-annotation</module>
|
||||
<module>../easy-es-common</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
@ -38,6 +39,31 @@
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-boot-starter</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-core</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-extension</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-common</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-annotation</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<artifactId>easy-es</artifactId>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<version>0.9.21</version>
|
||||
<version>0.9.30</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
@ -21,7 +21,6 @@
|
||||
<dependency>
|
||||
<groupId>cn.easy-es</groupId>
|
||||
<artifactId>easy-es-boot-starter</artifactId>
|
||||
<version>0.9.21</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
@ -31,19 +30,5 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.easyes.sample;
|
||||
|
||||
import cn.easyes.autoconfig.annotation.EsMapperScan;
|
||||
import cn.easyes.starter.register.EsMapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
* Copyright © 2021 xpc1024 All Rights Reserved
|
||||
**/
|
||||
@SpringBootApplication
|
||||
@EsMapperScan("com.xpc.easyes.sample.mapper")
|
||||
@EsMapperScan("cn.easyes.sample.mapper")
|
||||
public class EasyEsApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(EasyEsApplication.class, args);
|
||||
|
||||
@ -18,11 +18,26 @@ import java.util.List;
|
||||
* Copyright © 2021 xpc1024 All Rights Reserved
|
||||
**/
|
||||
@RestController
|
||||
public class TestController {
|
||||
public class SampleController {
|
||||
|
||||
@Resource
|
||||
private DocumentMapper documentMapper;
|
||||
|
||||
/**
|
||||
* 初始化插入数据,默认开启自动挡,自动挡模式下,索引会自动创建及更新. 若未开启自动挡,则在此步骤前需先调用创建索引API完成索引创建
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("insert")
|
||||
public Integer insert() {
|
||||
Document document = new Document();
|
||||
document.setTitle("测试1");
|
||||
document.setContent("测试内容1");
|
||||
document.setCreator("老汉");
|
||||
document.setGmtCreate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
return documentMapper.insert(document);
|
||||
}
|
||||
|
||||
/**
|
||||
* 演示根据标题精确查询文章
|
||||
* 例如title传值为 我真帅,那么在当前配置的索引下,所有标题为'我真帅'的文章都会被查询出来
|
||||
@ -39,15 +54,6 @@ public class TestController {
|
||||
return documentMapper.selectList(wrapper);
|
||||
}
|
||||
|
||||
@GetMapping("insert")
|
||||
public Integer insert(){
|
||||
Document document = new Document();
|
||||
document.setTitle("测试1");
|
||||
document.setContent("测试内容1");
|
||||
document.setCreator("老汉");
|
||||
document.setGmtCreate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
return documentMapper.insert(document);
|
||||
}
|
||||
|
||||
/**
|
||||
* 演示根据title删除文章,同时会被 DeleteInterceptor 拦截,执行逻辑删除
|
||||
@ -1,18 +1,16 @@
|
||||
package cn.easyes.sample.entity;
|
||||
|
||||
import cn.easyes.core.anno.HighLightMappingField;
|
||||
import cn.easyes.core.anno.TableField;
|
||||
import cn.easyes.core.anno.TableId;
|
||||
import cn.easyes.core.anno.TableName;
|
||||
import cn.easyes.core.enums.Analyzer;
|
||||
import cn.easyes.core.enums.FieldStrategy;
|
||||
import cn.easyes.core.enums.FieldType;
|
||||
import cn.easyes.core.enums.IdType;
|
||||
import cn.easyes.annotation.anno.HighLightMappingField;
|
||||
import cn.easyes.annotation.anno.TableField;
|
||||
import cn.easyes.annotation.anno.TableId;
|
||||
import cn.easyes.annotation.anno.TableName;
|
||||
import cn.easyes.common.enums.Analyzer;
|
||||
import cn.easyes.common.enums.FieldStrategy;
|
||||
import cn.easyes.common.enums.FieldType;
|
||||
import cn.easyes.common.enums.IdType;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* es 数据模型
|
||||
* <p>
|
||||
@ -76,9 +74,4 @@ public class Document {
|
||||
* 文档点赞数
|
||||
*/
|
||||
private Integer starNum;
|
||||
/**
|
||||
* 嵌套类型 注意,务必像下面示例一样指定类型为nested及其nested class,否则会导致框架无法正常运行
|
||||
*/
|
||||
@TableField(fieldType = FieldType.NESTED, nestedClass = User.class)
|
||||
private List<User> users;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user