一次查詢多個索引數據
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; });