mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-07 09:39:04 +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>
|
<parent>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-parent</artifactId>
|
<artifactId>easy-es-parent</artifactId>
|
||||||
<version>0.9.21</version>
|
<version>0.9.30</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@ -18,4 +18,10 @@
|
|||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.easy-es</groupId>
|
||||||
|
<artifactId>easy-es-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.anno;
|
package cn.easyes.annotation.anno;
|
||||||
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
@ -16,9 +16,9 @@ import java.lang.annotation.Target;
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
public @interface HighLightMappingField {
|
public @interface HighLightMappingField {
|
||||||
/**
|
/**
|
||||||
* 高亮字段对应源数据库表字段
|
* 指定的高亮字段名称
|
||||||
*
|
*
|
||||||
* @return 高亮返回字段名
|
* @return 高亮字段名称
|
||||||
*/
|
*/
|
||||||
String value();
|
String value();
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.extension.anno;
|
package cn.easyes.annotation.anno;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
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.Documented;
|
||||||
import java.lang.annotation.Retention;
|
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.annotation.assist.DefaultNestedClass;
|
||||||
import cn.easyes.core.enums.FieldStrategy;
|
import cn.easyes.common.enums.Analyzer;
|
||||||
import cn.easyes.core.enums.FieldType;
|
import cn.easyes.common.enums.FieldStrategy;
|
||||||
import cn.easyes.core.params.DefaultNestedClass;
|
import cn.easyes.common.enums.FieldType;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
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.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
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.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.annotation.assist;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认嵌套类
|
* 默认嵌套类
|
||||||
@ -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>0.9.21</version>
|
<version>0.9.30</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
@ -21,16 +21,6 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.easy-es</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>easy-es-core</artifactId>
|
<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>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<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 cn.easyes.core.config.GlobalConfig;
|
||||||
import lombok.Data;
|
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.common.utils.ExceptionUtils;
|
||||||
import cn.easyes.core.toolkit.StringUtils;
|
import cn.easyes.common.utils.StringUtils;
|
||||||
import org.apache.http.HttpHost;
|
import org.apache.http.HttpHost;
|
||||||
import org.apache.http.auth.AuthScope;
|
import org.apache.http.auth.AuthScope;
|
||||||
import org.apache.http.auth.UsernamePasswordCredentials;
|
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||||
@ -20,8 +20,8 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.COLON;
|
import static cn.easyes.common.constants.BaseEsConstants.COLON;
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.DEFAULT_SCHEMA;
|
import static cn.easyes.common.constants.BaseEsConstants.DEFAULT_SCHEMA;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* es自动配置
|
* es自动配置
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package cn.easyes.autoconfig.factory;
|
package cn.easyes.starter.factory;
|
||||||
|
|
||||||
|
|
||||||
import cn.easyes.autoconfig.config.EasyEsConfigProperties;
|
import cn.easyes.starter.config.EasyEsConfigProperties;
|
||||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
import cn.easyes.common.utils.ExceptionUtils;
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
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.conditions.interfaces.BaseEsMapper;
|
||||||
import cn.easyes.core.toolkit.ArrayUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.beans.factory.config.BeanDefinitionHolder;
|
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 org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
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.annotation.anno.Intercepts;
|
||||||
import cn.easyes.autoconfig.factory.IndexStrategyFactory;
|
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||||
import cn.easyes.autoconfig.service.AutoProcessIndexService;
|
import cn.easyes.common.utils.LogUtils;
|
||||||
|
import cn.easyes.common.utils.TypeUtils;
|
||||||
import cn.easyes.core.cache.BaseCache;
|
import cn.easyes.core.cache.BaseCache;
|
||||||
import cn.easyes.core.cache.GlobalConfigCache;
|
import cn.easyes.core.cache.GlobalConfigCache;
|
||||||
import cn.easyes.core.config.GlobalConfig;
|
import cn.easyes.core.config.GlobalConfig;
|
||||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
|
||||||
import cn.easyes.core.proxy.EsMapperProxy;
|
import cn.easyes.core.proxy.EsMapperProxy;
|
||||||
import cn.easyes.core.toolkit.LogUtils;
|
import cn.easyes.extension.context.Interceptor;
|
||||||
import cn.easyes.core.toolkit.TypeUtils;
|
import cn.easyes.extension.context.InterceptorChain;
|
||||||
import cn.easyes.extension.anno.Intercepts;
|
import cn.easyes.extension.context.InterceptorChainHolder;
|
||||||
import cn.easyes.extension.plugins.Interceptor;
|
import cn.easyes.starter.config.EasyEsConfigProperties;
|
||||||
import cn.easyes.extension.plugins.InterceptorChain;
|
import cn.easyes.starter.factory.IndexStrategyFactory;
|
||||||
import cn.easyes.extension.plugins.InterceptorChainHolder;
|
import cn.easyes.starter.service.AutoProcessIndexService;
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
import org.springframework.beans.factory.FactoryBean;
|
import org.springframework.beans.factory.FactoryBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.common.utils.LogUtils;
|
||||||
import cn.easyes.core.toolkit.LogUtils;
|
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
import org.springframework.context.EnvironmentAware;
|
import org.springframework.context.EnvironmentAware;
|
||||||
import org.springframework.context.ResourceLoaderAware;
|
import org.springframework.context.ResourceLoaderAware;
|
||||||
@ -18,7 +17,7 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.ENABLE_PREFIX;
|
import static cn.easyes.common.constants.BaseEsConstants.ENABLE_PREFIX;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册bean
|
* 注册bean
|
||||||
@ -28,6 +27,7 @@ import static cn.easyes.core.constants.BaseEsConstants.ENABLE_PREFIX;
|
|||||||
public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, ResourceLoaderAware, EnvironmentAware {
|
public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, ResourceLoaderAware, EnvironmentAware {
|
||||||
private ResourceLoader resourceLoader;
|
private ResourceLoader resourceLoader;
|
||||||
private Environment environment;
|
private Environment environment;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setResourceLoader(ResourceLoader resourceLoader) {
|
public void setResourceLoader(ResourceLoader resourceLoader) {
|
||||||
this.resourceLoader = resourceLoader;
|
this.resourceLoader = resourceLoader;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.autoconfig.service;
|
package cn.easyes.starter.service;
|
||||||
|
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
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.common.enums.ProcessIndexStrategyEnum;
|
||||||
import cn.easyes.core.common.EntityInfo;
|
import cn.easyes.common.utils.LogUtils;
|
||||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
import cn.easyes.core.biz.CreateIndexParam;
|
||||||
import cn.easyes.core.params.CreateIndexParam;
|
import cn.easyes.core.biz.EntityInfo;
|
||||||
import cn.easyes.core.params.EsIndexInfo;
|
import cn.easyes.core.biz.EsIndexInfo;
|
||||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||||
import cn.easyes.core.toolkit.IndexUtils;
|
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.elasticsearch.client.RestHighLevelClient;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
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.common.enums.ProcessIndexStrategyEnum;
|
||||||
import cn.easyes.core.common.EntityInfo;
|
import cn.easyes.common.utils.LogUtils;
|
||||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
import cn.easyes.core.biz.CreateIndexParam;
|
||||||
import cn.easyes.core.params.CreateIndexParam;
|
import cn.easyes.core.biz.EntityInfo;
|
||||||
import cn.easyes.core.params.EsIndexInfo;
|
import cn.easyes.core.biz.EsIndexInfo;
|
||||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||||
import cn.easyes.core.toolkit.IndexUtils;
|
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.elasticsearch.client.RestHighLevelClient;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.S1_SUFFIX;
|
import static cn.easyes.common.constants.BaseEsConstants.S1_SUFFIX;
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.SO_SUFFIX;
|
import static cn.easyes.common.constants.BaseEsConstants.SO_SUFFIX;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自动平滑托管索引实现类,本框架默认模式,过程零停机,数据会自动转移至新索引
|
* 自动平滑托管索引实现类,本框架默认模式,过程零停机,数据会自动转移至新索引
|
||||||
@ -1,6 +1,6 @@
|
|||||||
# Auto Configure
|
# Auto Configure
|
||||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||||
cn.easyes.autoconfig.config.EsAutoConfiguration,\
|
cn.easyes.starter.config.EsAutoConfiguration,\
|
||||||
cn.easyes.autoconfig.factory.IndexStrategyFactory,\
|
cn.easyes.starter.factory.IndexStrategyFactory,\
|
||||||
cn.easyes.autoconfig.service.impl.AutoProcessIndexSmoothlyServiceImpl,\
|
cn.easyes.starter.service.impl.AutoProcessIndexSmoothlyServiceImpl,\
|
||||||
cn.easyes.autoconfig.service.impl.AutoProcessIndexNotSmoothlyServiceImpl
|
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的常量
|
* 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;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.enums;
|
package cn.easyes.common.enums;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.enums;
|
package cn.easyes.common.enums;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.enums;
|
package cn.easyes.common.enums;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
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.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
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.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
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.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.enums;
|
package cn.easyes.common.enums;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.exception;
|
package cn.easyes.common.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EasyEs异常类
|
* EasyEs异常类
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.conditions.interfaces;
|
package cn.easyes.common.params;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.common.utils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* array工具类
|
* array工具类
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.common.utils;
|
||||||
|
|
||||||
import java.util.Collection;
|
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.Arrays;
|
||||||
import java.util.List;
|
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.Collection;
|
||||||
import java.util.Map;
|
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.InvocationTargetException;
|
||||||
import java.lang.reflect.UndeclaredThrowableException;
|
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 com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.common.utils;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.common.utils;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Function;
|
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.Constructor;
|
||||||
import java.lang.reflect.Field;
|
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.ParameterizedType;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
@ -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>0.9.21</version>
|
<version>0.9.30</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@ -20,20 +20,8 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>cn.easy-es</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>easy-es-extension</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>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<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;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
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.config.GlobalConfig;
|
||||||
import cn.easyes.core.enums.Analyzer;
|
import cn.easyes.common.enums.Analyzer;
|
||||||
import cn.easyes.core.enums.FieldStrategy;
|
import cn.easyes.common.enums.FieldStrategy;
|
||||||
|
import cn.easyes.common.enums.FieldType;
|
||||||
import com.alibaba.fastjson.serializer.NameFilter;
|
import com.alibaba.fastjson.serializer.NameFilter;
|
||||||
import cn.easyes.core.enums.FieldType;
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
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.PropertyNamingStrategy;
|
||||||
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
||||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||||
import cn.easyes.core.enums.IdType;
|
import cn.easyes.common.enums.IdType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
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;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.common;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.common;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.common;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.core.params;
|
package cn.easyes.core.biz;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package cn.easyes.core.cache;
|
package cn.easyes.core.cache;
|
||||||
|
|
||||||
import cn.easyes.core.conditions.BaseEsMapperImpl;
|
import cn.easyes.core.conditions.BaseEsMapperImpl;
|
||||||
import cn.easyes.core.constants.BaseEsConstants;
|
import cn.easyes.common.constants.BaseEsConstants;
|
||||||
import cn.easyes.core.toolkit.CollectionUtils;
|
import cn.easyes.common.utils.CollectionUtils;
|
||||||
import cn.easyes.core.toolkit.EntityInfoHelper;
|
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 cn.easyes.core.toolkit.FieldUtils;
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package cn.easyes.core.conditions;
|
package cn.easyes.core.conditions;
|
||||||
|
|
||||||
|
import cn.easyes.core.biz.OrderByParam;
|
||||||
import cn.easyes.core.conditions.interfaces.*;
|
import cn.easyes.core.conditions.interfaces.*;
|
||||||
import cn.easyes.core.common.OrderByParam;
|
|
||||||
import org.apache.lucene.search.join.ScoreMode;
|
import org.apache.lucene.search.join.ScoreMode;
|
||||||
import org.elasticsearch.common.geo.GeoPoint;
|
import org.elasticsearch.common.geo.GeoPoint;
|
||||||
import org.elasticsearch.common.geo.ShapeRelation;
|
import org.elasticsearch.common.geo.ShapeRelation;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.easyes.core.conditions;
|
package cn.easyes.core.conditions;
|
||||||
|
|
||||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
import cn.easyes.common.params.SFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 抽象Lambda表达式父类
|
* 抽象Lambda表达式父类
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.easyes.core.conditions;
|
package cn.easyes.core.conditions;
|
||||||
|
|
||||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
import cn.easyes.common.params.SFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 抽象Lambda表达式父类
|
* 抽象Lambda表达式父类
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.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.apache.lucene.search.join.ScoreMode;
|
||||||
import org.elasticsearch.common.geo.GeoPoint;
|
import org.elasticsearch.common.geo.GeoPoint;
|
||||||
import org.elasticsearch.common.geo.ShapeRelation;
|
import org.elasticsearch.common.geo.ShapeRelation;
|
||||||
@ -18,10 +17,10 @@ import java.util.*;
|
|||||||
import java.util.function.BiPredicate;
|
import java.util.function.BiPredicate;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import static cn.easyes.core.enums.BaseEsParamTypeEnum.*;
|
import static cn.easyes.common.enums.BaseEsParamTypeEnum.*;
|
||||||
import static cn.easyes.core.enums.EsAttachTypeEnum.*;
|
import static cn.easyes.common.enums.EsAttachTypeEnum.*;
|
||||||
import static cn.easyes.core.enums.EsQueryTypeEnum.*;
|
import static cn.easyes.common.enums.EsQueryTypeEnum.*;
|
||||||
import static cn.easyes.core.enums.JoinTypeEnum.*;
|
import static cn.easyes.common.enums.JoinTypeEnum.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 抽象Lambda表达式父类
|
* 抽象Lambda表达式父类
|
||||||
|
|||||||
@ -1,18 +1,17 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.BaseCache;
|
||||||
import cn.easyes.core.cache.GlobalConfigCache;
|
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.conditions.interfaces.BaseEsMapper;
|
||||||
import cn.easyes.core.constants.BaseEsConstants;
|
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||||
import cn.easyes.core.enums.FieldStrategy;
|
import cn.easyes.core.toolkit.FieldUtils;
|
||||||
import cn.easyes.core.enums.IdType;
|
import cn.easyes.core.toolkit.IndexUtils;
|
||||||
import cn.easyes.core.params.CreateIndexParam;
|
import cn.easyes.core.toolkit.PageHelper;
|
||||||
import cn.easyes.core.params.EsIndexParam;
|
|
||||||
import cn.easyes.core.params.EsUpdateParam;
|
|
||||||
import cn.easyes.core.toolkit.*;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.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.action.search.SearchRequest;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,8 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.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 cn.easyes.core.toolkit.EntityInfoHelper;
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.conditions.interfaces.Update;
|
||||||
import cn.easyes.core.params.BaseEsParam;
|
|
||||||
import cn.easyes.core.params.EsUpdateParam;
|
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -19,6 +19,7 @@ public class LambdaEsUpdateWrapper<T> extends AbstractLambdaUpdateWrapper<T, Lam
|
|||||||
implements Update<LambdaEsUpdateWrapper<T>, SFunction<T, ?>> {
|
implements Update<LambdaEsUpdateWrapper<T>, SFunction<T, ?>> {
|
||||||
|
|
||||||
List<EsUpdateParam> updateParamList;
|
List<EsUpdateParam> updateParamList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(entity)
|
* 不建议直接 new 该实例,使用 Wrappers.lambdaQuery(entity)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import org.elasticsearch.action.search.SearchRequest;
|
|||||||
public abstract class Wrapper<T> {
|
public abstract class Wrapper<T> {
|
||||||
/**
|
/**
|
||||||
* 获取查询条件 待优化
|
* 获取查询条件 待优化
|
||||||
|
*
|
||||||
* @return 查询条件
|
* @return 查询条件
|
||||||
*/
|
*/
|
||||||
protected abstract SearchRequest getSearchRequest();
|
protected abstract SearchRequest getSearchRequest();
|
||||||
|
|||||||
@ -1,14 +1,16 @@
|
|||||||
package cn.easyes.core.conditions;
|
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.cache.GlobalConfigCache;
|
||||||
import cn.easyes.core.common.EntityInfo;
|
import cn.easyes.core.config.GlobalConfig;
|
||||||
import cn.easyes.core.enums.AggregationTypeEnum;
|
import cn.easyes.core.toolkit.EntityInfoHelper;
|
||||||
import cn.easyes.core.params.AggregationParam;
|
import cn.easyes.core.toolkit.EsQueryTypeUtil;
|
||||||
import cn.easyes.core.params.BaseEsParam;
|
import cn.easyes.core.toolkit.FieldUtils;
|
||||||
import cn.easyes.core.params.GeoParam;
|
|
||||||
import cn.easyes.core.params.OrCount;
|
|
||||||
import cn.easyes.core.toolkit.*;
|
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.elasticsearch.index.query.*;
|
import org.elasticsearch.index.query.*;
|
||||||
@ -22,9 +24,9 @@ import org.elasticsearch.search.sort.SortOrder;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
import static cn.easyes.common.constants.BaseEsConstants.*;
|
||||||
import static cn.easyes.core.enums.BaseEsParamTypeEnum.*;
|
import static cn.easyes.common.enums.BaseEsParamTypeEnum.*;
|
||||||
import static cn.easyes.core.enums.EsAttachTypeEnum.*;
|
import static cn.easyes.common.enums.EsAttachTypeEnum.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 核心 wrpeer处理类
|
* 核心 wrpeer处理类
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package cn.easyes.core.conditions.interfaces;
|
|||||||
import cn.easyes.core.conditions.LambdaEsIndexWrapper;
|
import cn.easyes.core.conditions.LambdaEsIndexWrapper;
|
||||||
import cn.easyes.core.conditions.LambdaEsQueryWrapper;
|
import cn.easyes.core.conditions.LambdaEsQueryWrapper;
|
||||||
import cn.easyes.core.conditions.LambdaEsUpdateWrapper;
|
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.SearchRequest;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
import org.elasticsearch.action.search.SearchScrollRequest;
|
import org.elasticsearch.action.search.SearchScrollRequest;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.BiPredicate;
|
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;
|
package cn.easyes.core.conditions.interfaces;
|
||||||
|
|
||||||
import cn.easyes.core.common.OrderByParam;
|
import cn.easyes.common.constants.BaseEsConstants;
|
||||||
import cn.easyes.core.constants.BaseEsConstants;
|
import cn.easyes.core.biz.OrderByParam;
|
||||||
import cn.easyes.core.toolkit.FieldUtils;
|
import cn.easyes.core.toolkit.FieldUtils;
|
||||||
import org.elasticsearch.search.sort.SortBuilder;
|
import org.elasticsearch.search.sort.SortBuilder;
|
||||||
import org.elasticsearch.search.sort.SortOrder;
|
import org.elasticsearch.search.sort.SortOrder;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package cn.easyes.core.conditions.interfaces;
|
package cn.easyes.core.conditions.interfaces;
|
||||||
|
|
||||||
import cn.easyes.core.toolkit.CollectionUtils;
|
import cn.easyes.common.utils.CollectionUtils;
|
||||||
import cn.easyes.core.toolkit.ExceptionUtils;
|
import cn.easyes.common.utils.ExceptionUtils;
|
||||||
import cn.easyes.core.toolkit.FieldUtils;
|
import cn.easyes.core.toolkit.FieldUtils;
|
||||||
import org.elasticsearch.common.geo.GeoPoint;
|
import org.elasticsearch.common.geo.GeoPoint;
|
||||||
import org.elasticsearch.common.geo.ShapeRelation;
|
import org.elasticsearch.common.geo.ShapeRelation;
|
||||||
@ -13,7 +13,7 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
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;
|
package cn.easyes.core.conditions.interfaces;
|
||||||
|
|
||||||
import cn.easyes.core.enums.Analyzer;
|
import cn.easyes.common.enums.Analyzer;
|
||||||
import cn.easyes.core.enums.FieldType;
|
import cn.easyes.common.enums.FieldType;
|
||||||
import cn.easyes.core.toolkit.FieldUtils;
|
import cn.easyes.core.toolkit.FieldUtils;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
package cn.easyes.core.conditions.interfaces;
|
package cn.easyes.core.conditions.interfaces;
|
||||||
|
|
||||||
import org.apache.lucene.search.join.ScoreMode;
|
|
||||||
import org.elasticsearch.index.query.QueryBuilder;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.easyes.core.conditions.interfaces;
|
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 cn.easyes.core.toolkit.FieldUtils;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
package cn.easyes.core.config;
|
package cn.easyes.core.config;
|
||||||
|
|
||||||
import cn.easyes.core.enums.ProcessIndexStrategyEnum;
|
import cn.easyes.common.enums.FieldStrategy;
|
||||||
import cn.easyes.core.enums.FieldStrategy;
|
import cn.easyes.common.enums.IdType;
|
||||||
import cn.easyes.core.enums.IdType;
|
import cn.easyes.common.enums.ProcessIndexStrategyEnum;
|
||||||
import cn.easyes.core.enums.RefreshPolicy;
|
import cn.easyes.common.enums.RefreshPolicy;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
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全局置项
|
* easy-es全局置项
|
||||||
|
|||||||
@ -1,20 +1,24 @@
|
|||||||
package cn.easyes.core.toolkit;
|
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 cn.easyes.core.config.GlobalConfig;
|
||||||
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
||||||
import com.alibaba.fastjson.serializer.NameFilter;
|
import com.alibaba.fastjson.serializer.NameFilter;
|
||||||
import com.alibaba.fastjson.serializer.SerializeFilter;
|
import com.alibaba.fastjson.serializer.SerializeFilter;
|
||||||
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
|
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 lombok.Getter;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|||||||
@ -1,9 +1,13 @@
|
|||||||
package cn.easyes.core.toolkit;
|
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.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.apache.lucene.search.join.ScoreMode;
|
||||||
import org.elasticsearch.index.query.*;
|
import org.elasticsearch.index.query.*;
|
||||||
import org.elasticsearch.join.query.HasChildQueryBuilder;
|
import org.elasticsearch.join.query.HasChildQueryBuilder;
|
||||||
@ -13,10 +17,6 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
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>
|
* <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);
|
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(field, value).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, termQueryBuilder);
|
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参数
|
// 此处兼容由or转入shouldList的in参数
|
||||||
Collection<?> values = Objects.isNull(value) ? model.getValues() : (Collection<?>) value;
|
Collection<?> values = Objects.isNull(value) ? model.getValues() : (Collection<?>) value;
|
||||||
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(field, values).boost(boost);
|
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(field, values).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, termsQueryBuilder);
|
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);
|
MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery(field, value).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, matchPhraseQueryBuilder);
|
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)
|
MatchPhrasePrefixQueryBuilder matchPhrasePrefixQueryBuilder = QueryBuilders.matchPhrasePrefixQuery(field, value)
|
||||||
.maxExpansions((Integer) model.getExt()).boost(boost);
|
.maxExpansions((Integer) model.getExt()).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, matchPhrasePrefixQueryBuilder);
|
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);
|
PrefixQueryBuilder prefixQueryBuilder = QueryBuilders.prefixQuery(field, value.toString()).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, prefixQueryBuilder);
|
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);
|
QueryStringQueryBuilder queryStringQueryBuilder = QueryBuilders.queryStringQuery(value.toString()).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, queryStringQueryBuilder);
|
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);
|
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(field, value).boost(boost);
|
||||||
if (StringUtils.isBlank(path)) {
|
if (StringUtils.isBlank(path)) {
|
||||||
@ -82,7 +82,7 @@ public class EsQueryTypeUtil {
|
|||||||
} else {
|
} else {
|
||||||
// 嵌套类型
|
// 嵌套类型
|
||||||
if (JoinTypeEnum.NESTED.equals(model.getExt())) {
|
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());
|
NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery(model.getPath(), matchQueryBuilder, (ScoreMode) model.getScoreMode());
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, nestedQueryBuilder);
|
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, nestedQueryBuilder);
|
||||||
} else if (JoinTypeEnum.HAS_CHILD.equals(model.getExt())) {
|
} else if (JoinTypeEnum.HAS_CHILD.equals(model.getExt())) {
|
||||||
@ -93,31 +93,31 @@ public class EsQueryTypeUtil {
|
|||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, hasParentQueryBuilder);
|
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);
|
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(field).boost(boost);
|
||||||
if (Objects.equals(originalAttachType, GT.getType())) {
|
if (Objects.equals(originalAttachType, EsAttachTypeEnum.GT.getType())) {
|
||||||
rangeQueryBuilder.gt(value);
|
rangeQueryBuilder.gt(value);
|
||||||
} else if (Objects.equals(originalAttachType, LT.getType())) {
|
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.LT.getType())) {
|
||||||
rangeQueryBuilder.lt(value);
|
rangeQueryBuilder.lt(value);
|
||||||
} else if (Objects.equals(originalAttachType, GE.getType())) {
|
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.GE.getType())) {
|
||||||
rangeQueryBuilder.gte(value);
|
rangeQueryBuilder.gte(value);
|
||||||
} else if (Objects.equals(originalAttachType, LE.getType())) {
|
} else if (Objects.equals(originalAttachType, EsAttachTypeEnum.LE.getType())) {
|
||||||
rangeQueryBuilder.lte(value);
|
rangeQueryBuilder.lte(value);
|
||||||
}
|
}
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, rangeQueryBuilder);
|
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);
|
ExistsQueryBuilder existsQueryBuilder = QueryBuilders.existsQuery(field).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, existsQueryBuilder);
|
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, existsQueryBuilder);
|
||||||
} else if (Objects.equals(queryType, WILDCARD_QUERY.getType())) {
|
} else if (Objects.equals(queryType, EsQueryTypeEnum.WILDCARD_QUERY.getType())) {
|
||||||
String query;
|
String query;
|
||||||
if (Objects.equals(attachType, LIKE_LEFT.getType())) {
|
if (Objects.equals(attachType, EsAttachTypeEnum.LIKE_LEFT.getType())) {
|
||||||
query = WILDCARD_SIGN + value;
|
query = BaseEsConstants.WILDCARD_SIGN + value;
|
||||||
} else if (Objects.equals(attachType, LIKE_RIGHT.getType())) {
|
} else if (Objects.equals(attachType, EsAttachTypeEnum.LIKE_RIGHT.getType())) {
|
||||||
query = value + WILDCARD_SIGN;
|
query = value + BaseEsConstants.WILDCARD_SIGN;
|
||||||
} else {
|
} else {
|
||||||
query = WILDCARD_SIGN + value + WILDCARD_SIGN;
|
query = BaseEsConstants.WILDCARD_SIGN + value + BaseEsConstants.WILDCARD_SIGN;
|
||||||
}
|
}
|
||||||
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(field, query).boost(boost);
|
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(field, query).boost(boost);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, wildcardQueryBuilder);
|
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, wildcardQueryBuilder);
|
||||||
@ -140,12 +140,12 @@ public class EsQueryTypeUtil {
|
|||||||
*/
|
*/
|
||||||
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType, boolean enableMust2Filter,
|
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType, boolean enableMust2Filter,
|
||||||
List<String> fields, Object value, Object ext, Integer minShouldMatch, Float boost) {
|
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);
|
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(value, fields.toArray(new String[0])).boost(boost);
|
||||||
if (ext instanceof Operator) {
|
if (ext instanceof Operator) {
|
||||||
Operator operator = (Operator) ext;
|
Operator operator = (Operator) ext;
|
||||||
multiMatchQueryBuilder.operator(operator);
|
multiMatchQueryBuilder.operator(operator);
|
||||||
multiMatchQueryBuilder.minimumShouldMatch(minShouldMatch + PERCENT);
|
multiMatchQueryBuilder.minimumShouldMatch(minShouldMatch + BaseEsConstants.PERCENT);
|
||||||
}
|
}
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, multiMatchQueryBuilder);
|
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, multiMatchQueryBuilder);
|
||||||
}
|
}
|
||||||
@ -165,7 +165,7 @@ public class EsQueryTypeUtil {
|
|||||||
*/
|
*/
|
||||||
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType,
|
public static void addQueryByType(BoolQueryBuilder boolQueryBuilder, Integer queryType, Integer attachType,
|
||||||
boolean enableMust2Filter, String field, Object leftValue, Object rightValue, Float boost) {
|
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 rangeQueryBuilder = QueryBuilders.rangeQuery(field).boost(boost);
|
||||||
rangeQueryBuilder.gte(leftValue).lte(rightValue);
|
rangeQueryBuilder.gte(leftValue).lte(rightValue);
|
||||||
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, rangeQueryBuilder);
|
setQueryBuilder(boolQueryBuilder, attachType, enableMust2Filter, rangeQueryBuilder);
|
||||||
@ -182,22 +182,22 @@ public class EsQueryTypeUtil {
|
|||||||
*/
|
*/
|
||||||
private static void setQueryBuilder(BoolQueryBuilder boolQueryBuilder, Integer attachType, boolean enableMust2Filter,
|
private static void setQueryBuilder(BoolQueryBuilder boolQueryBuilder, Integer attachType, boolean enableMust2Filter,
|
||||||
QueryBuilder queryBuilder) {
|
QueryBuilder queryBuilder) {
|
||||||
boolean must = Objects.equals(attachType, MUST.getType()) || Objects.equals(attachType, GT.getType())
|
boolean must = Objects.equals(attachType, EsAttachTypeEnum.MUST.getType()) || Objects.equals(attachType, EsAttachTypeEnum.GT.getType())
|
||||||
|| Objects.equals(attachType, LT.getType()) || Objects.equals(attachType, GE.getType())
|
|| Objects.equals(attachType, EsAttachTypeEnum.LT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.GE.getType())
|
||||||
|| Objects.equals(attachType, LE.getType()) || Objects.equals(attachType, IN.getType())
|
|| Objects.equals(attachType, EsAttachTypeEnum.LE.getType()) || Objects.equals(attachType, EsAttachTypeEnum.IN.getType())
|
||||||
|| Objects.equals(attachType, BETWEEN.getType()) || Objects.equals(attachType, EXISTS.getType())
|
|| Objects.equals(attachType, EsAttachTypeEnum.BETWEEN.getType()) || Objects.equals(attachType, EsAttachTypeEnum.EXISTS.getType())
|
||||||
|| Objects.equals(attachType, LIKE_LEFT.getType()) || Objects.equals(attachType, LIKE_RIGHT.getType());
|
|| Objects.equals(attachType, EsAttachTypeEnum.LIKE_LEFT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.LIKE_RIGHT.getType());
|
||||||
boolean mustNot = Objects.equals(attachType, MUST_NOT.getType()) || Objects.equals(attachType, NOT_IN.getType())
|
boolean mustNot = Objects.equals(attachType, EsAttachTypeEnum.MUST_NOT.getType()) || Objects.equals(attachType, EsAttachTypeEnum.NOT_IN.getType())
|
||||||
|| Objects.equals(attachType, NOT_EXISTS.getType()) || Objects.equals(attachType, NOT_BETWEEN.getType());
|
|| Objects.equals(attachType, EsAttachTypeEnum.NOT_EXISTS.getType()) || Objects.equals(attachType, EsAttachTypeEnum.NOT_BETWEEN.getType());
|
||||||
if (must) {
|
if (must) {
|
||||||
if (enableMust2Filter) {
|
if (enableMust2Filter) {
|
||||||
boolQueryBuilder.filter(queryBuilder);
|
boolQueryBuilder.filter(queryBuilder);
|
||||||
} else {
|
} else {
|
||||||
boolQueryBuilder.must(queryBuilder);
|
boolQueryBuilder.must(queryBuilder);
|
||||||
}
|
}
|
||||||
} else if (Objects.equals(attachType, FILTER.getType())) {
|
} else if (Objects.equals(attachType, EsAttachTypeEnum.FILTER.getType())) {
|
||||||
boolQueryBuilder.filter(queryBuilder);
|
boolQueryBuilder.filter(queryBuilder);
|
||||||
} else if (Objects.equals(attachType, SHOULD.getType())) {
|
} else if (Objects.equals(attachType, EsAttachTypeEnum.SHOULD.getType())) {
|
||||||
boolQueryBuilder.should(queryBuilder);
|
boolQueryBuilder.should(queryBuilder);
|
||||||
} else if (mustNot) {
|
} else if (mustNot) {
|
||||||
boolQueryBuilder.mustNot(queryBuilder);
|
boolQueryBuilder.mustNot(queryBuilder);
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.core.toolkit;
|
||||||
|
|
||||||
import cn.easyes.core.conditions.interfaces.SFunction;
|
import cn.easyes.common.constants.BaseEsConstants;
|
||||||
import cn.easyes.core.config.GlobalConfig;
|
import cn.easyes.common.params.SFunction;
|
||||||
|
import cn.easyes.common.utils.StringUtils;
|
||||||
import cn.easyes.core.cache.GlobalConfigCache;
|
import cn.easyes.core.cache.GlobalConfigCache;
|
||||||
import cn.easyes.core.constants.BaseEsConstants;
|
import cn.easyes.core.config.GlobalConfig;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
package cn.easyes.core.toolkit;
|
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.cache.GlobalConfigCache;
|
||||||
import cn.easyes.core.common.EntityFieldInfo;
|
|
||||||
import cn.easyes.core.common.EntityInfo;
|
|
||||||
import cn.easyes.core.config.GlobalConfig;
|
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.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||||
@ -34,7 +34,6 @@ import java.util.*;
|
|||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 索引工具类
|
* 索引工具类
|
||||||
@ -154,7 +153,7 @@ public class IndexUtils {
|
|||||||
IndicesAliasesRequest.AliasActions aliasActions =
|
IndicesAliasesRequest.AliasActions aliasActions =
|
||||||
new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD);
|
new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD);
|
||||||
aliasActions.index(indexName);
|
aliasActions.index(indexName);
|
||||||
aliasActions.alias(DEFAULT_ALIAS);
|
aliasActions.alias(BaseEsConstants.DEFAULT_ALIAS);
|
||||||
indicesAliasesRequest.addAliasAction(aliasActions);
|
indicesAliasesRequest.addAliasAction(aliasActions);
|
||||||
try {
|
try {
|
||||||
client.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
|
client.indices().updateAliases(indicesAliasesRequest, RequestOptions.DEFAULT);
|
||||||
@ -176,8 +175,8 @@ public class IndexUtils {
|
|||||||
ReindexRequest reindexRequest = new ReindexRequest();
|
ReindexRequest reindexRequest = new ReindexRequest();
|
||||||
reindexRequest.setSourceIndices(oldIndexName);
|
reindexRequest.setSourceIndices(oldIndexName);
|
||||||
reindexRequest.setDestIndex(releaseIndexName);
|
reindexRequest.setDestIndex(releaseIndexName);
|
||||||
reindexRequest.setDestOpType(DEFAULT_DEST_OP_TYPE);
|
reindexRequest.setDestOpType(BaseEsConstants.DEFAULT_DEST_OP_TYPE);
|
||||||
reindexRequest.setConflicts(DEFAULT_CONFLICTS);
|
reindexRequest.setConflicts(BaseEsConstants.DEFAULT_CONFLICTS);
|
||||||
reindexRequest.setRefresh(Boolean.TRUE);
|
reindexRequest.setRefresh(Boolean.TRUE);
|
||||||
try {
|
try {
|
||||||
BulkByScrollResponse response = client.reindex(reindexRequest, RequestOptions.DEFAULT);
|
BulkByScrollResponse response = client.reindex(reindexRequest, RequestOptions.DEFAULT);
|
||||||
@ -207,7 +206,7 @@ public class IndexUtils {
|
|||||||
.flatMap(aliases -> Optional.ofNullable(aliases.get(indexName)))
|
.flatMap(aliases -> Optional.ofNullable(aliases.get(indexName)))
|
||||||
.ifPresent(aliasMetadataList ->
|
.ifPresent(aliasMetadataList ->
|
||||||
aliasMetadataList.forEach(aliasMetadata -> {
|
aliasMetadataList.forEach(aliasMetadata -> {
|
||||||
if (DEFAULT_ALIAS.equals(aliasMetadata.alias())) {
|
if (BaseEsConstants.DEFAULT_ALIAS.equals(aliasMetadata.alias())) {
|
||||||
esIndexInfo.setHasDefaultAlias(Boolean.TRUE);
|
esIndexInfo.setHasDefaultAlias(Boolean.TRUE);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@ -216,10 +215,10 @@ public class IndexUtils {
|
|||||||
Optional.ofNullable(getIndexResponse.getSettings())
|
Optional.ofNullable(getIndexResponse.getSettings())
|
||||||
.flatMap(settingsMap -> Optional.ofNullable(settingsMap.get(indexName)))
|
.flatMap(settingsMap -> Optional.ofNullable(settingsMap.get(indexName)))
|
||||||
.ifPresent(p -> {
|
.ifPresent(p -> {
|
||||||
String shardsNumStr = p.get(SHARDS_NUM_KEY);
|
String shardsNumStr = p.get(BaseEsConstants.SHARDS_NUM_KEY);
|
||||||
Optional.ofNullable(shardsNumStr)
|
Optional.ofNullable(shardsNumStr)
|
||||||
.ifPresent(s -> esIndexInfo.setShardsNum(Integer.parseInt(s)));
|
.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)
|
Optional.ofNullable(replicasNumStr)
|
||||||
.ifPresent(r -> esIndexInfo.setReplicasNum(Integer.parseInt(r)));
|
.ifPresent(r -> esIndexInfo.setReplicasNum(Integer.parseInt(r)));
|
||||||
});
|
});
|
||||||
@ -310,7 +309,7 @@ public class IndexUtils {
|
|||||||
|
|
||||||
indexParamList.forEach(indexParam -> {
|
indexParamList.forEach(indexParam -> {
|
||||||
Map<String, Object> info = new HashMap<>();
|
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());
|
info.put(BaseEsConstants.TYPE, indexParam.getFieldType());
|
||||||
// 设置分词器
|
// 设置分词器
|
||||||
if (FieldType.TEXT.getType().equals(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) {
|
public static boolean changeAliasAtomic(RestHighLevelClient client, String oldIndexName, String releaseIndexName) {
|
||||||
IndicesAliasesRequest.AliasActions addIndexAction = new IndicesAliasesRequest.AliasActions(
|
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 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 indicesAliasesRequest = new IndicesAliasesRequest();
|
||||||
indicesAliasesRequest.addAliasAction(addIndexAction);
|
indicesAliasesRequest.addAliasAction(addIndexAction);
|
||||||
@ -487,7 +486,7 @@ public class IndexUtils {
|
|||||||
|
|
||||||
// 重试 看加了后缀的_s0 和_s1是否存在
|
// 重试 看加了后缀的_s0 和_s1是否存在
|
||||||
for (int i = 0; i <= 1; i++) {
|
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);
|
exists = IndexUtils.existsIndex(client, retryIndexName);
|
||||||
if (exists) {
|
if (exists) {
|
||||||
entityInfo.setRetrySuccessIndexName(retryIndexName);
|
entityInfo.setRetrySuccessIndexName(retryIndexName);
|
||||||
@ -513,14 +512,14 @@ public class IndexUtils {
|
|||||||
}
|
}
|
||||||
try {
|
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) {
|
if (!lock) {
|
||||||
LogUtils.warn("retry get distribute lock failed, please check whether other resources have been preempted or deadlocked");
|
LogUtils.warn("retry get distribute lock failed, please check whether other resources have been preempted or deadlocked");
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
return biFunction.apply(entityClass, client);
|
return biFunction.apply(entityClass, client);
|
||||||
} finally {
|
} finally {
|
||||||
LockUtils.release(client, entityClass.getSimpleName().toLowerCase(), LOCK_MAX_RETRY);
|
LockUtils.release(client, entityClass.getSimpleName().toLowerCase(), BaseEsConstants.LOCK_MAX_RETRY);
|
||||||
}
|
}
|
||||||
}).exceptionally((throwable) -> {
|
}).exceptionally((throwable) -> {
|
||||||
Optional.ofNullable(throwable).ifPresent(e -> LogUtils.error("process index exception", e.toString()));
|
Optional.ofNullable(throwable).ifPresent(e -> LogUtils.error("process index exception", e.toString()));
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.core.toolkit;
|
||||||
|
|
||||||
|
import cn.easyes.common.constants.BaseEsConstants;
|
||||||
import org.elasticsearch.action.delete.DeleteRequest;
|
import org.elasticsearch.action.delete.DeleteRequest;
|
||||||
import org.elasticsearch.action.delete.DeleteResponse;
|
import org.elasticsearch.action.delete.DeleteResponse;
|
||||||
import org.elasticsearch.action.index.IndexRequest;
|
import org.elasticsearch.action.index.IndexRequest;
|
||||||
@ -15,8 +16,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import static cn.easyes.core.constants.BaseEsConstants.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 基于es写的轻量级分布式锁,仅供框架内部使用,可避免引入redis/zk等其它依赖
|
* 基于es写的轻量级分布式锁,仅供框架内部使用,可避免引入redis/zk等其它依赖
|
||||||
* <p>
|
* <p>
|
||||||
@ -50,11 +49,11 @@ public class LockUtils {
|
|||||||
IndexUtils.createEmptyIndex(client, LOCK_INDEX);
|
IndexUtils.createEmptyIndex(client, LOCK_INDEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (maxRetry <= ZERO) {
|
if (maxRetry <= BaseEsConstants.ZERO) {
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getCount(client, idValue) > ZERO) {
|
if (getCount(client, idValue) > BaseEsConstants.ZERO) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(WAIT_SECONDS / maxRetry);
|
Thread.sleep(WAIT_SECONDS / maxRetry);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
@ -76,7 +75,7 @@ public class LockUtils {
|
|||||||
private static boolean createLock(RestHighLevelClient client, String idValue) {
|
private static boolean createLock(RestHighLevelClient client, String idValue) {
|
||||||
IndexRequest indexRequest = new IndexRequest(LOCK_INDEX);
|
IndexRequest indexRequest = new IndexRequest(LOCK_INDEX);
|
||||||
indexRequest.id(idValue);
|
indexRequest.id(idValue);
|
||||||
indexRequest.source(DISTRIBUTED_LOCK_TIP_JSON, XContentType.JSON);
|
indexRequest.source(BaseEsConstants.DISTRIBUTED_LOCK_TIP_JSON, XContentType.JSON);
|
||||||
IndexResponse response;
|
IndexResponse response;
|
||||||
try {
|
try {
|
||||||
response = client.index(indexRequest, RequestOptions.DEFAULT);
|
response = client.index(indexRequest, RequestOptions.DEFAULT);
|
||||||
@ -98,7 +97,7 @@ public class LockUtils {
|
|||||||
public synchronized static boolean release(RestHighLevelClient client, String idValue, Integer maxRetry) {
|
public synchronized static boolean release(RestHighLevelClient client, String idValue, Integer maxRetry) {
|
||||||
DeleteRequest deleteRequest = new DeleteRequest(LOCK_INDEX);
|
DeleteRequest deleteRequest = new DeleteRequest(LOCK_INDEX);
|
||||||
deleteRequest.id(idValue);
|
deleteRequest.id(idValue);
|
||||||
if (maxRetry <= ZERO) {
|
if (maxRetry <= BaseEsConstants.ZERO) {
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +149,7 @@ public class LockUtils {
|
|||||||
response = client.search(searchRequest, RequestOptions.DEFAULT);
|
response = client.search(searchRequest, RequestOptions.DEFAULT);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return ONE;
|
return BaseEsConstants.ONE;
|
||||||
}
|
}
|
||||||
return (int) response.getHits().getTotalHits().value;
|
return (int) response.getHits().getTotalHits().value;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.easyes.core.toolkit;
|
package cn.easyes.core.toolkit;
|
||||||
|
|
||||||
import cn.easyes.core.common.PageInfo;
|
import cn.easyes.core.biz.PageInfo;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
|||||||
@ -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>0.9.21</version>
|
<version>0.9.30</version>
|
||||||
<relativePath>../easy-es-parent</relativePath>
|
<relativePath>../easy-es-parent</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@ -18,4 +18,11 @@
|
|||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.easy-es</groupId>
|
||||||
|
<artifactId>easy-es-annotation</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@ -1,4 +1,6 @@
|
|||||||
package cn.easyes.extension.plugins;
|
package cn.easyes.extension.context;
|
||||||
|
|
||||||
|
import cn.easyes.extension.plugins.Plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.extension.plugins;
|
package cn.easyes.extension.context;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.extension.plugins;
|
package cn.easyes.extension.context;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* interceptorChain上下文
|
* interceptorChain上下文
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.easyes.extension.plugins;
|
package cn.easyes.extension.context;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -1,9 +1,11 @@
|
|||||||
package cn.easyes.extension.plugins;
|
package cn.easyes.extension.plugins;
|
||||||
|
|
||||||
|
|
||||||
import cn.easyes.extension.anno.Intercepts;
|
import cn.easyes.annotation.anno.Intercepts;
|
||||||
import cn.easyes.extension.anno.Signature;
|
import cn.easyes.annotation.anno.Signature;
|
||||||
import cn.easyes.extension.utils.ExceptionUtil;
|
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.InvocationHandler;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|||||||
@ -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>0.9.21</version>
|
<version>0.9.30</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>
|
||||||
@ -20,10 +20,11 @@
|
|||||||
</licenses>
|
</licenses>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>../easy-es-core</module>
|
|
||||||
<module>../easy-es-boot-starter</module>
|
<module>../easy-es-boot-starter</module>
|
||||||
|
<module>../easy-es-core</module>
|
||||||
<module>../easy-es-extension</module>
|
<module>../easy-es-extension</module>
|
||||||
<module>../easy-es-annotation</module>
|
<module>../easy-es-annotation</module>
|
||||||
|
<module>../easy-es-common</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@ -38,6 +39,31 @@
|
|||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<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>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
|
|||||||
@ -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>0.9.21</version>
|
<version>0.9.30</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@ -21,7 +21,6 @@
|
|||||||
<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>0.9.21</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -31,19 +30,5 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.easyes.sample;
|
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.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
* Copyright © 2021 xpc1024 All Rights Reserved
|
* Copyright © 2021 xpc1024 All Rights Reserved
|
||||||
**/
|
**/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EsMapperScan("com.xpc.easyes.sample.mapper")
|
@EsMapperScan("cn.easyes.sample.mapper")
|
||||||
public class EasyEsApplication {
|
public class EasyEsApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(EasyEsApplication.class, args);
|
SpringApplication.run(EasyEsApplication.class, args);
|
||||||
|
|||||||
@ -18,11 +18,26 @@ import java.util.List;
|
|||||||
* Copyright © 2021 xpc1024 All Rights Reserved
|
* Copyright © 2021 xpc1024 All Rights Reserved
|
||||||
**/
|
**/
|
||||||
@RestController
|
@RestController
|
||||||
public class TestController {
|
public class SampleController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DocumentMapper documentMapper;
|
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传值为 我真帅,那么在当前配置的索引下,所有标题为'我真帅'的文章都会被查询出来
|
* 例如title传值为 我真帅,那么在当前配置的索引下,所有标题为'我真帅'的文章都会被查询出来
|
||||||
@ -39,15 +54,6 @@ public class TestController {
|
|||||||
return documentMapper.selectList(wrapper);
|
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 拦截,执行逻辑删除
|
* 演示根据title删除文章,同时会被 DeleteInterceptor 拦截,执行逻辑删除
|
||||||
@ -1,18 +1,16 @@
|
|||||||
package cn.easyes.sample.entity;
|
package cn.easyes.sample.entity;
|
||||||
|
|
||||||
import cn.easyes.core.anno.HighLightMappingField;
|
import cn.easyes.annotation.anno.HighLightMappingField;
|
||||||
import cn.easyes.core.anno.TableField;
|
import cn.easyes.annotation.anno.TableField;
|
||||||
import cn.easyes.core.anno.TableId;
|
import cn.easyes.annotation.anno.TableId;
|
||||||
import cn.easyes.core.anno.TableName;
|
import cn.easyes.annotation.anno.TableName;
|
||||||
import cn.easyes.core.enums.Analyzer;
|
import cn.easyes.common.enums.Analyzer;
|
||||||
import cn.easyes.core.enums.FieldStrategy;
|
import cn.easyes.common.enums.FieldStrategy;
|
||||||
import cn.easyes.core.enums.FieldType;
|
import cn.easyes.common.enums.FieldType;
|
||||||
import cn.easyes.core.enums.IdType;
|
import cn.easyes.common.enums.IdType;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* es 数据模型
|
* es 数据模型
|
||||||
* <p>
|
* <p>
|
||||||
@ -76,9 +74,4 @@ public class Document {
|
|||||||
* 文档点赞数
|
* 文档点赞数
|
||||||
*/
|
*/
|
||||||
private Integer starNum;
|
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