相关疑难解决方法(0)

滚动索引(动态索引名称)在Spring Data Elasticsearch中

我有一个用例,其中我想根据特定条件在单独的索引中索引我的文档.例如,我想将发票文档存储到部门名称后缀的索引.

@Document(indexName="store_{department}", indexStoreType="invoice")
public class InvoiceES{

    // fields
    @Id
    private String id;
    @Field
    private String department;
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用Spring Data实现这一目标?

如果没有,是否计划在即将发布的Spring Data版本中?

elasticsearch spring-data

14
推荐指数
2
解决办法
5135
查看次数

使用Spring-Data Elasticsearch在Elasticsearch中动态创建索引名称

我有一个用例,需要在Elasticsearch中每月创建索引.我们的想法是在每月的基础上创建索引,以便它们易于维护,并且可以在过期时删除.为此我实现了我已经使用了弹簧批次并且每月工作将创建月度基础上的指数对于Elasticsearch -Java集成我使用了Spring-Data Elasticsearch实现.我现在面临的问题是,我无法弄清楚如何使用Entity对象为索引和映射提供动态名称.我的当前实现完成了单一索引.请找到我用于创建索引的以下代码

elasticsearchTemplate.createIndex(SingleChat.class);
elasticsearchTemplate.putMapping(SingleChat.class);
elasticsearchTemplate.refresh(SingleChat.class, true);
Run Code Online (Sandbox Code Playgroud)

而SingleChat是我的实体类

@Document(indexName="singlemsgtemp_#{jobParameters['MONTH']}",type="singlechat")
public class SingleChat {
    @org.springframework.data.annotation.Id
    String Id;
    @Field(type = FieldType.String)
    String conservationId;
    @Field(type = FieldType.String)
    String from;
    @Field(type = FieldType.String)
    String to;
    @Field(type = FieldType.String)
    String msgContent; 
    @Field(type = FieldType.String)
    String sessionId;
    @Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true, format = DateFormat.date_hour_minute_second_millis)
    Date postedDate;
    @Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true, format = DateFormat.date_hour_minute_second_millis)
    Date expireDate;
}   
Run Code Online (Sandbox Code Playgroud)

但这不符合预期.我也在尝试其他一些东西.但我愿意接受建议.也可以随意评论我目前的方法,是否有效.如果需要更多详细信息,请与我们联系.

java spring spring-batch elasticsearch spring-data-elasticsearch

9
推荐指数
2
解决办法
9717
查看次数