之前整合过一次 SpringBoot1.59和elasticsearch2.4.4,而 elasticsearch 更新很快,已经有版本 6了,且对之前的版本2不再更新。为了避免以后出现问题不好解决,我们这次试用elasticsearch5。
之前的那篇文章已经不适用了,下面介绍SpringBoot2.0.3整合elasticsearch5.6.10。
环境说明:
因为我的 SpringBoot 版本是2.0.3,所以默认的es是5.6.10版本,必须添加transport-netty3-client,否则会报错 Java.lang.ClassNotFoundException: org.elasticsearch.transport.RemoteTransportException 之类错误。
关于安装 ES 和 head 插件这里就不再介绍了
1、手动创建索引
2、手动创建一条记录
PUT http://127.0.0.1:9200/article/post/1
使用 elasticsearch-head 来查看我们刚才添加的记录,成功
3、单元测试
运行结果如下
之前的那篇文章已经不适用了,下面介绍SpringBoot2.0.3整合elasticsearch5.6.10。
环境说明:
- spring boot 使用 2.0.3.RELEASE
- elasticsearch为5.6.10
- 本地安装ES集群为 5.6.11版本
一、添加依赖
- <!--引入ElasticSearch的依赖包,默认使用elasticsearch5.6.10版本-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
- </dependency>
- <!--需要引入transport-netty3-client,否则会启动报错-->
- <dependency>
- <groupId>org.elasticsearch.plugin</groupId>
- <artifactId>transport-netty3-client</artifactId>
- <version>5.6.10</version>
- </dependency>
因为我的 SpringBoot 版本是2.0.3,所以默认的es是5.6.10版本,必须添加transport-netty3-client,否则会报错 Java.lang.ClassNotFoundException: org.elasticsearch.transport.RemoteTransportException 之类错误。
二、添加配置,将 ES CLient 组件加入到Spring 容器
- /**
- * @author 言曌
- * @date 2018/8/29 下午1:16
- */
- @Configuration
- public class ElasticSearchConfig {
- private static final Logger logger = LoggerFactory.getLogger(ElasticSearchConfig.class);
- @Bean
- public TransportClient transportClient() {
- logger.info("初始化开始。。。。。");
- TransportClient client = null;
- try {
- TransportAddress transportAddress = new InetSocketTransportAddress(InetAddress.getByName("localhost"),
- Integer.valueOf(9300));
- // 配置信息
- Settings esSetting = Settings.builder()
- .put("cluster.name","elasticsearch")
- .build();
- //配置信息Settings自定义
- client = new PreBuiltTransportClient(esSetting);
- client.addTransportAddresses(transportAddress);
- } catch (Exception e) {
- logger.error("elasticsearch TransportClient create error!!!", e);
- }
- return client;
- }
- }
三、测试
关于安装 ES 和 head 插件这里就不再介绍了
1、手动创建索引
- {
- "settings":{
- "number_of_shards": 3,
- "number_of_replicas": 0
- },
- "mappings":{
- "post":{
- "properties":{
- "title":{
- "type": "text"
- },
- "content":{
- "type": "text"
- },
- "author":{
- "type": "keyword"
- },
- "create_time":{
- "type": "date",
- "format": "yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"
- }
- }
- }
- }
- }
2、手动创建一条记录
PUT http://127.0.0.1:9200/article/post/1
- {
- "title": "静夜思",
- "content": "静夜思全文,省略...",
- "author": "李白",
- "create_time": "2018-08-29 15:12:13"
- }
使用 elasticsearch-head 来查看我们刚才添加的记录,成功
3、单元测试
- @SpringBootTest
- @RunWith(SpringRunner.class)
- public class EsTest {
- @Autowired
- private TransportClient client;
- @Test
- public void test() {
- //查询ID为1的文章
- GetResponse result = client.prepareGet("article","post","1").get();
- System.out.println(result);
- }
- }
运行结果如下
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏