Sac*_*hin 1 elasticsearch spring-data spring-data-elasticsearch
在spring数据中,elasticsearch一个模型类/实体表示或映射到索引和类型.
例如: -
@Document(indexName = "myindex",type="mytype")
public class DocumentModel {
......
}
Run Code Online (Sandbox Code Playgroud)
我有一个用例,我应该在具有相同结构的不同es索引中索引数据.如果是这种情况,我怎样才能用这个模型类表示所有这些索引?
Spring Data ES支持在@Document
注释的索引名称中使用SpEL表达式,如下所示:
@Document(indexName = "myindex-#{userId}", type="mytype")
public class DocumentModel {
......
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以访问SpEL提供的整个上下文,以便创建索引名称.
UPDATE
如果你正在使用elasticsearchTemplate
,有一个更简单的变体,你可以这样做:
IndexQuery indexQuery = new IndexQueryBuilder()
.withId(docModel.getId())
.withObject(docModel)
.withIndex("myindex"+docModel.getUserId()).build();
Run Code Online (Sandbox Code Playgroud)
调用withIndex("...")
将覆盖@Document
注释中的任何索引名称
归档时间: |
|
查看次数: |
672 次 |
最近记录: |