具体报错如下:
**NewConnectionError(<urllib3.connection.HTTPConnection object at 0x7f395c3eac50>:
Failed to establish a new connection: [Errno 111] Connection refused)**
我是第一次使用这个模块,以为像下面导入实例化后就直接可以使用了
from elasticsearch import Elasticsearch
es = Elasticsearch([{'host' :'127.0.0.1','port' :'9200'}])
然后但凡我进行任何创建索引,查询,修改之类的操作,都会报错如上,当然字面意思说链接被拒绝了,我以为是本地端口链接被拒绝了,然后测试
if es.ping:
print('yes')
else:
print('err')
发现ping通的,也就是客户端是通的,然后我就去浏览器上输入127.0.0.1:9200看看能不能接收的json文件之类的信息。结果不行,发现链接不上。
于是想到elasticsearch本身是个服务器,我客户端通,会不会是少了服务器接受处理数据发送给客户端。当然一开始我没想到,看到网上很多人直接导入就用了,以为不用配置服务器。找了半天也没合理解释,也可能是我自己没相通
于是去配置服务器:
这个是我参考的配置
为了防止丢失,我下面贴下主要步骤
安装
1 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2 sudo apt-get install apt-transport-https
3 echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/
4 apt-get update
5 sudo apt-get install elasticsearch
启动
1 cd /usr/share/elasticsearch/bin
2 vim ./elasticsearch.in.sh
3 JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"
4 ./elasticsearch
验证服务器启动
在浏览器输入url: 127.0.0.1:9200