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 BootSpring Boot之使用 Spring Data Elasticsearch 整合elasticsearch