前言:

诸多教程中,都使用了es head 工具,看到人家的es-head能够在页面上新建索引,也能在页面上看到索引的数据,为啥我的不能呢?先猜测一下,是不是没有正确链接到es啊,但是检查了es的跨域设置,是设置好的。那么是不是版本匹配问题呢,网上搜了一下,es6.x,7.x用head5是没有问题的,会不会是页面上渲染的问题呢,打开控制台,果不其然console报错了。

用百度google了一下发现,和contentType 有关。

解决方案如下:

1.将容器内的vendor.js拿出来。

 docker cp elasticsearch-head:/usr/src/app/_site/vendor.js ./

2.如果是es-head5,按照如下修改,其他版本行数可能不一定。(windows平台建议Notepad++ 打开,使用ctrl+G锁定行数,unix使用vim,数字gg命令直接跳到指定行数)

6886行

contentType: "application/x-www-form-urlencoded

改成

contentType: "application/json;charset=UTF-8"

7573行

var inspectData = s.contentType === "application/x-www-form-urlencoded" &&

修改为

var inspectData = s.contentType === "application/json;charset=UTF-8" &&

3.修改完毕,放回文件替换。刷新页面

docker cp vendor.js elasticsearch-head:/usr/src/app/_site

4.验证,在索引-新建索引能够页面创建索引,在数据浏览可以按照索引-类型-字段 各种过滤和浏览,即可。
 

结尾补充:

如果想登录到容器内,平常的容器一般都可以执行/bin/bash,很是alpine没有(笔者的head5就是alpine),改成 docker exec -it 镜像id sh 就好了。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐