版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
整合:
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;
}