spring data elasticsearch多索引查询

Posted double_yuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring data elasticsearch多索引查询相关的知识,希望对你有一定的参考价值。

一次查询多个索引数据

es里可以这样写

GET 索引1,索引2,索引3/_search

也可以这样

给索引创建别名,多个索引可以使用一个别名

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "myindex2",
        "alias": "myalias"
      }
    },{
      "add": {
        "index": "myindex3",
        "alias": "myalias"
      }
    }
  ]
}

或者

PUT /myindex2/_alias/myalias 

删除别名

POST /_aliases
{    
  "actions": [        
    { 
      "remove": { 
        "index": "myindex3", 
        "alias": "my_index_alias" 
      }
    }    
  ]
}

 

java查询多个索引

SearchQuery searchQuery = new NativeSearchQueryBuilder()
                .withIndices("myindex2","myindex4")  //可以直接使用别名
                .withQuery(queryBuilder)
                //.addAggregation(sumBuilder)
                .build();
        List<Map> map=elasticsearchTemplate.query(searchQuery, response -> {
            SearchHits hits = response.getHits();
            List<Map> list=new ArrayList<>();
            Arrays.stream(hits.getHits()).forEach(h -> {
                Map<String, Object> source = h.getSource();
                System.out.println(JSONArray.toJSONString(source));
                list.add(source);
            });
            return list;
        });

 

以上是关于spring data elasticsearch多索引查询的主要内容,如果未能解决你的问题,请参考以下文章

springboot 集成 spring-data-elasticsearch

Spring Data Elasticsearch

Spring BootSpring Boot之使用 Spring Data Elasticsearch 整合elasticsearch

使用 Spring data mongo 和 Spring data elasticsearch 时如何建模?

Spring Data Elasticsearch

Spring Data ElasticSearch 使用