Dan*_*iel 5 elasticsearch spring-data spring-data-elasticsearch
如何在运行时参数化 SpringData ElasticSearch 索引?
例如,数据模型:
@Document(indexName = "myIndex")
public class Asset {
@Id
public String id;
// ...
}
Run Code Online (Sandbox Code Playgroud)
和存储库:
public interface AssetRepository extends ElasticsearchCrudRepository<Asset, String> {
Asset getAssetById(String assetId);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以myIndex用一个参数替换,但该参数将在实例化/启动期间解决。我们为多个客户/租户提供相同的资产结构,它们有自己的索引。我需要的是这样的:
public interface AssetRepository extends ElasticsearchCrudRepository<Asset, String> {
Asset getAssetByIdFromIndex(String assetId, String index);
}
Run Code Online (Sandbox Code Playgroud)
或这个
repoInstance.forIndex("myOtherIndex").getAssetById("123");
Run Code Online (Sandbox Code Playgroud)
我知道这不是开箱即用的,但是有没有办法以编程方式“破解”它?
org.springframework.data.elasticsearch.repository.ElasticSearchRepository有一个方法
FacetedPage<T> search(SearchQuery searchQuery);
Run Code Online (Sandbox Code Playgroud)
其中 SearchQuery 可以采用多个索引用于搜索。
我希望它能回答
| 归档时间: |
|
| 查看次数: |
2080 次 |
| 最近记录: |