乐趣区

关于golang:docker-搭建-Elasticsearch-和-Kibana

一、ElasticSearch

1 pull

ElasticSearch的 docker 镜像不反对默认的 latest 标签,所以在 Pull 时须要指定标签:

docker pull elasticsearch:7.12.0

2 创立网络连接

用来与其余容器服务进行通信,比方 Kibana。

docker network create es-test

3 创立容器

docker run -itd --name es --net es-test -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.12.0

4 批改配置,容许跨域拜访

docker exec -it es bash
echo -e "http.cors.enabled: true\nhttp.cors.allow-origin: \"*\"" >> config/elasticsearch.yml

5 装置 ik 分词器

es 自带的分词器对中文分词不是很敌对,所以咱们下载开源的 IK 分词器来解决这个问题。

上面的命令接上一步:

cd plugins
elasticsearch-plugin install https://ghproxy.com/https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip

6 重启 es

exit
docker restart es

拜访 http://localhost:9200,胜利的话会失去相似以下响应:

{
    "name": "0d096b662146",
    "cluster_name": "docker-cluster",
    "cluster_uuid": "KFeS1JjNTlqo56RmN8DiFw",
    "version": {
        "number": "7.12.0",
        "build_flavor": "default",
        "build_type": "docker",
        "build_hash": "78722783c38caa25a70982b5b042074cde5d3b3a",
        "build_date": "2021-03-18T06:17:15.410153305Z",
        "build_snapshot": false,
        "lucene_version": "8.8.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}

二、Kibana

1 pull

拉取对应版本的 Kibana:

docker pull kibana:7.12.0

2 创立容器

docker run -itd --name kibana --net es-test -p 5601:5601 kibana:7.12.0

3 批改配置

须要批改 ElasticSearch 的连贯,因为创立容器时曾经映射了端口,所以只须要替换为本机的 ip 地址,以 192.168.31.152 为例:

docker exec -it kibana bash
sed -i "s/elasticsearch:9200/192.168.31.152:9200/g" config/kibana.yml

4 重启

退出 docker 容器的 bash 命令行,除了 exit 命令外,还能够应用 ctrl+D 退出。

而后重启容器:

docker restart kibana

拜访 http://localhost:5601 会进入 Kibana 控制台。

三、测试

在 Kibana 控制台的 Dev tools 中进行测试,也能够间接在终到用 curl 工具测试。

1 创立一个索引

PUT /test

2 测试分词性能

POST test/_analyze
{
  "analyzer": "ik_max_word",
  "text": "我昨天去北京出差时逛了逛北京大学"
}

这里测试时选用的是最大分词ik_max_word,会将一句话或一段话中所有的可能组成的词组或字提取进去,这是搜索引擎中常见的形式。

你也能够应用智能模式ik_smart,只有能组成词就不会持续向下细分。

能够切换这两个模式查看不同的后果。

退出移动版