es动态index查询

codecraft

运行时设定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);
    }
    

doc

阅读 5.7k

code-craft
spring boot , docker and so on 欢迎关注微信公众号: geek_luandun

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.6k 声望
1.9k 粉丝
0 条评论
你知道吗?

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很...

11.6k 声望
1.9k 粉丝
文章目录
宣传栏