繁体   English   中英

如何在Spring Data ElasticSearch中管理多个用户索引

[英]How to manage multiple user indexes in spring data elasticsearch

在spring数据elasticsearch中,一个模型类/实体表示或映射到索引和类型。

例如:-

@Document(indexName = "myindex",type="mytype")
public class DocumentModel {
    ......
} 

我有一个用例,在这种情况下,我应该在具有相同结构的不同es索引中索引数据。 如果是这种情况,我如何用这个模型类表示所有这些索引?

Spring Data ES支持在@Document批注的索引名称中使用SpEL表达式,如下所示:

@Document(indexName = "myindex-#{userId}", type="mytype")
public class DocumentModel {
    ......
} 

因此,您可以访问SpEL提供整个上下文以创建索引名称。

更新

如果您使用的是elasticsearchTemplate ,则有一个更简单的变体,您可以这样做:

IndexQuery indexQuery = new IndexQueryBuilder()
     .withId(docModel.getId())
     .withObject(docModel)
     .withIndex("myindex"+docModel.getUserId()).build();

withIndex("...")的调用将覆盖@Document批注中具有的任何索引名称

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM