使用java api和elastic search进行交互时,如果出现了
抛出错误:NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{erAdMJ4wTNGxixzYoTGhCw}{127.0.0.1}{127.0.0.1:9200}]]
检查一下几点
1、java代码中的yml配置是否正确
java代码访问elastic search端口一定要是9300(注意不要写成9200),当然你可以去elastic search的配置文件中修改
cluster-name的名字要和es配置的cluster-name名称一致
项目中application.yml配置
spring:
data:
elasticsearch:
cluster-nodes: 123.207.97.233:9300
cluster-name: my-application
es里的配置文件
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
这些都确定没错,检查下一步
2、多半就是SpringBoot与ES的版本不匹配造成的
我使用的SpringBoot的是2.1.4版本,而我一开始在服务器上安装的elastic search版本是7.4.3,服务器上的使用的JDK也是es自带的,照着网上一堆方法都没有用,还是出错。
最后我重新安装了elastic search的6.5.0版本,IK分词器使用6.6.0版本,JDK使用1.8版本,重新运行项目测试,问题解决
折腾来折腾去就是版本的问题晕倒,这对萌新小白太不友好了,也算一个踩坑的过程
IK分词器可以取这里下载
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.6.0
ES可以去官网下载
https://www.elastic.co/downloads/past-releases#elasticsearch
JDK去Oracle官网下载
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html