【spring boot】2.1 整合 es解决方案 NoNodeAvailableException【None of the configured nodes are available】

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lhh143400/article/details/100945110

整合:

1.application-test.properties 配置

#==================  ES 配置  ===================#
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300

   为什么 集群名称 填写 elasticsearch 呢? 因为 默认是这个

2.elasticsearch.yml 配置

        看个人需求,用默认的就行,什么都不要填写

错误信息:

NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{3UPMINmMSyGKFsMrw0D2zw}{127.0.0.1}{127.0.0.1:9300}]]

那就是elasticsearch 与 spring boot 版本对应不上,请修改版本,我用的 spring boot 2.1.0.RELEASE + windows elasticsearch-7.0.0 服务器 导致的错误

所以我改成  spring boot 2.1.0.RELEASE + windows elasticsearch-6.7.1 服务器

  这样配置就行了,比较简单,默认以下俩种 springdata 已经注入bean 过了,可以直接调用。

两种api形式 1.ElasticsearchTemplate              2.ElasticsearchRepository

面向接口编程简单案例 ElasticsearchRepository:

EsRepositoryService 接口类

package com.ylz.springboot.modules.elasticsearch.service;

import com.ylz.springboot.modules.elasticsearch.pojo.ArticleBook;

import java.util.List;

/**
 * @author lhh
 * @Date 2019/9/16 23:12
 */
public interface EsRepositoryService {


    /**
     * 批量新增
     * @param list 书籍对象
     */
    public void batchSave(List<ArticleBook> list);


    /**
     * 单条新增
     * @param obj 书籍对象
     */
    public void save(ArticleBook obj);
}

 EsRepositoryServiceImpl 实现类

@Service("EsRepositoryService")
public class EsRepositoryServiceImpl implements EsRepositoryService {

    @Autowired
    private EsRepository esRepository;



    /**
     * 批量导入 es
     */
    @Override
    public void batchSave(List<ArticleBook> list){
        try {
            esRepository.saveAll(list);
        }catch (Exception e){
            e.printStackTrace();
        }

    }

    /**
     * 单条新增
     *
     * @param obj 书籍对象
     */
    @Override
    public void save(ArticleBook obj) {
         esRepository.save(obj);
    }
}

jpa 形式

/**
 * es jpa 形式
 *
 * @author lhh
 * @Date 2019/9/16 22:58
 */
public interface EsRepository extends ElasticsearchRepository<ArticleBook,String> {
}
ArticleBook实体类:

import lombok.*;
import org.springframework.data.elasticsearch.annotations.Document;

/**
 * 书籍 好的摘要文章
 *
 * @author lhh
 * @Date 2019/9/16 23:05
 */
@Document(indexName = "article_book" ,type = "book")
@Builder
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ArticleBook {

    private String id;
    /**
     * 书本名字
     */
    private String bookName;
    /**
     * 作者
     */
    private String author;
    /**
     * 读后感,文章摘要
     */
    private String bookReport;
}

猜你喜欢

转载自blog.csdn.net/lhh143400/article/details/100945110
今日推荐