SpringBoot集成elasticsearch所遇到的问题

ps:集成问题3天的bug终于解决,大家也许在集成的时候也会碰到这样的问题,切记安安静静坐下来喝杯茶

  • 首先讲真的,elasticsearch版本不兼容问题太严重,由于也是小白,在遇到问题时手无足措,下面来说一下,我再遇到这个集成问题的思路,但愿能帮到大家,请求发出时,首先看开发工具(idea,ecplise)控制台是否报错,其次看elasticsearch控制台是否报错。

  • elasticsearch目前官网上最新版本是7.2版本,如果有下载这个版本的兄弟,恭喜你,估计是与springboot2.0版本是不兼容的,不兼容异常可以在elasticsearch控制台上找到,在这里不说了(想恢复原来的版本不兼容,发现太麻烦。。)

  • 如果遇到版本不兼容的情况,那我们肯定是想换版本啊,但是发现在elasticsearch官网上找不到(原谅我的英文太差),后来加了工作人员的wx索要了历史版本网址,选择版本下载就好,我这边下载的是6.8,其余的不清楚

  • 历史版本网址
    https://www.elastic.co/downloads/past-releases#elasticsearch)
    如果有下载kibana可视化的同学,记得一定要把kibana换成与elasticsearch一个版本的(不换的话有可能会出现意想不到的错误),kibana历史版本下载可以将上述网址#后面的换成kibana就可以。

  • 刚下载elasticsearch与kibana的同学,不建议去修改它们中的配置文件,一是没有必要去修改,二是咱们不太熟悉嘛。说完了这些便是上代码了

  • 首先配置文件application.yml

server:
  port: 8091
spring:
  data:
    elasticsearch:
      cluster-nodes: localhost:9300
      local: true
      repositories:
        enabled: true

9300为java访问elasticsearch端口

  • 这是实体类@Document代表文档indexName与type分别代表索引名称与索引类型
@Document(indexName = "testgoods",type = "goods")
public class GoodsInfo {
  private Long id;
  private String name;
  private String description;

  public Long getId() {
      return id;
  }

  public void setId(Long id) {
      this.id = id;
  }

  public String getName() {
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  public String getDescription() {
      return description;
  }

  public void setDescription(String description) {
      this.description = description;
  }

  public GoodsInfo(Long id, String name, String description) {
      this.id = id;
      this.name = name;
      this.description = description;
  }

  public GoodsInfo() {
  }
}
  • dao层继承ElasticsearchRepository这个类就好,K为实体类的类型,
@Component
public interface GoodsRepository extends ElasticsearchRepository<GoodsInfo, Long> {

}

  • Controller类
@RestController
public class Controller {
  @Autowired
  private GoodsRepository goodsRepository;
  
  @GetMapping("save")
  public String save(){
      GoodsInfo goodsInfo = new GoodsInfo(System.currentTimeMillis(),
              "商品"+System.currentTimeMillis(),"这是一个测试商品");
      goodsRepository.save(goodsInfo);
      return "success";
  }
}

  • 启动类
@ComponentScan("error*")
@SpringBootApplication
public class SpringbootApplicon {
      public static void main(String [] args){
          SpringApplication.run(SpringbootApplicon.class, args);
      }
}
  • 这就集成好了,最后再吐槽一下,版本问题真的很烦人。PS 不是有的不写注释,而是我也不会啊。。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值