解决,测试环境或生产环境下,同一个es,使用SpringDataElasticsearch时候,映射实体类注解动态注入问题

rt.

1. 情况说明

资源问题,只有一个es集群.需要满足开发和生产环境.根据index_name不同进行区分.例如, student-dev,student-prod.需要解决@Document中index_name动态注入问题

2. 解决方案

使用配置类加载参数,SPEL表达式进行注入

@Configuration
public class EsConstant {

  // dev new
  public static   String StudentIndexName;

@Autowired
  Environment environment;

  @PostConstruct
  public void init() {
    StudentIndexName=environment.getProperty("es.student-index");
  }
}

@Data
@Document(indexName ="#{esConstant.StudentIndexName}" , type = "_doc")
public class EsStudent {

...
...

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Elasticsearch的Mapper映射实体类时,时间问题涉及到对日期和时间数据类型的处理。在Elasticsearch中,日期和时间可以使用多种格式进行存储和检索。 首先,我们需要在实体类的属性上使用合适的注解来标识该属性是一个日期或时间。对于日期类型,可以使用`@Field`注解,并指定字段类型为`FieldType.Date`,这样可以将日期通过指定的格式进行存储和检索。对于时间类型,可以使用`@Field`注解,并指定字段类型为`FieldType.Text`,同时也可以使用`format`属性来指定时间的格式。 在映射的过程中,我们可以选择使用Elasticsearch提供的默认日期时间格式,如`"yyyy-MM-dd HH:mm:ss"`,也可以根据自己的需求定义对应的格式。需要注意的是,由于日期和时间的校验和转换可能会带来性能上的影响,所以在选择日期时间格式时需要权衡性能和需求。 当对日期和时间进行检索时,可以使用相应的格式将输入的日期时间字符串转换为Elasticsearch所支持的格式,并进行检索。一般情况下,Elasticsearch会将日期和时间类型进行忽略,只比较其毫秒级的数值,所以在检索时需要将输入的日期和时间精确到毫秒级。 总之,ES Mapper映射实体类时间问题涉及到对日期和时间的存储、检索和格式转换。通过合适的注解和格式设置,我们可以方便地处理实体类中的日期和时间属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值