我是靠谱客的博主 落寞飞鸟,这篇文章主要介绍一个elasticsearch支持多套运行环境(spring elasticsearch data 4),现在分享给大家,希望可以做个参考。

ps:因服务器资源有限,不能部署多套elasticsearch,同时也保证了环境的一致性(可能都遇到过环境不一样,运行结果也不一样,乱七八糟的bug出现),本项目基于spring boot2+

之前支持spring elasticsearch data 3,现在升级4后实现方法有很大不同。

解决办法:采用前缀prefix区分环境,如:dev_   test_

1、首先定义实体类:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Document(indexName = "area_zqcrm", type = "_doc") @Data @JsonIgnoreProperties(ignoreUnknown = true) public class Area { @Id private String id; @Field(name = "full_name") private String fullName; private String name; @Field(name = "parent_id") private String parentId; }

与官方文档一致,没有任何差别

 

2、具体实现查询

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/** * 删除文档 * * @param id * @return */ public <T> String delete(Class<T> clazz, String id) { return elasticsearchRestTemplate().delete(id, getIndexCoordinatesFor(clazz)); } /** * 按索引id查询 * * @param id * @param clazz * @param <T> * @return */ public <T> T findById(Class<T> clazz, String id) { LOGGER.info("index:" + getIndexCoordinatesFor(clazz).getIndexName() + ",id:" + id); return elasticsearchRestTemplate().get(id, clazz, getIndexCoordinatesFor(clazz)); } public <T> IndexCoordinates getIndexCoordinatesFor(Class<T> clazz) { IndexCoordinates indexCoordinates = elasticsearchRestTemplate().getIndexCoordinatesFor(clazz); return IndexCoordinates.of("prefix前缀" + indexCoordinates.getIndexName()); }

 

最后

以上就是落寞飞鸟最近收集整理的关于一个elasticsearch支持多套运行环境(spring elasticsearch data 4)的全部内容,更多相关一个elasticsearch支持多套运行环境(spring内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部