运行时设定index
配置文件
es.index.name=demo
配置bean
@Value("${es.index.name}")
String indexName;
@Bean
public String indexName(){
return indexName;
}
配置domain
@Document(indexName="#{@indexName}", type = "log")
dao
public interface DemoDao extends ElasticsearchRepository<Demo,String>{
Page<Demo> findByApp(String app, Pageable pageable);
}
好处是运行时可以指定,但是无法动态查询不同index的
动态参数
@Autowired
ElasticsearchTemplate elasticsearchTemplate;
public void demo(String index,String type,String app,Pageable page){
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("app",app);
SearchQuery query = new NativeSearchQueryBuilder()
.withIndices(index)
.withTypes(type)
.withQuery(matchQueryBuilder)
.withPageable(page)
.build();
Page<Demo> data = elasticsearchTemplate.queryForPage(query,Demo.class);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。