docker安装 es7.17.6+IK分词+Go elastic
Posted 刘贤松handler
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装 es7.17.6+IK分词+Go elastic相关的知识,希望对你有一定的参考价值。
1.下载docker 镜像
进入 Docker Hub 选择所需要的版本
docker pull elasticsearch:7.17.6
2.创建容器挂载目录及设置配置文件
mkdir -p /data/docker/es/config
mkdir -p /data/docker/es/data
mkdir -p /data/docker/es/plugins
创建 elasticsearch.yml 配置文件并更改权限
vi /data/docker/es/config/elasticsearch.yml
#配置yml文件
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
chmod -R 777 /data/docker/es
3.启动es容器并配置账户密码
启动es容器并且挂载设置目录
docker run --name es --restart=always -p 10012:9200 -p 10013:9300 \\
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \\
-v /data/docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \\
-v /data/docker/es/data:/usr/share/elasticsearch/data \\
-v /data/docker/es/plugins:/usr/share/elasticsearch/plugins \\
-d elasticsearch:7.17.6
进入容器,配置账号密码
docker exec -it es /bin/bash
在 bin 目录 并修改密码,执行过程中 需要输入多次,请记录 后期需要使用该密码登录 es
./bin/elasticsearch-setup-passwords interactive
3.安装ik分词器
IK项目地址:https://github.com/medcl/elasticsearch-analysis-ik
首先需要说明的是,IK插件必须和 ElasticSearch 的版本一致,否则不兼容。
本系统采用的elasticsearch版本为7.17.6
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip
退出容器并重启es
docker restart es
打开浏览器 使用 用户名 :elastic 密码 : (自己设置的密码)
package main
import (
"context"
"fmt"
"github.com/olivere/elastic/v7"
"reflect"
)
type Content struct
Title string `json:"title"`
Author string `json:"author"`
Content string `json:"content"`
Status int `json:"status"`
func main()
// https://github.com/olivere/elastic/wiki/Configuration
client, err := elastic.NewClient(
elastic.SetURL("http://xxxxxxxxxxx:10012"),
elastic.SetBasicAuth("elastic", "password"),
elastic.SetSniff(false),
)
if err != nil
fmt.Println("错误信息", err)
panic(err)
content := ContentTitle: "标题title", Author: "李四", Content: "文体内容", Status: 2
do, err := client.Index().Index("t_content").BodyJson(content).Do(context.Background())
if err != nil
panic(err)
fmt.Printf("id %s , index %s, type %s", do.Id, do.Index, do.Type)
boolQ := elastic.NewBoolQuery()
boolQ.Must(elastic.NewMatchQuery("author", "李四"))
boolQ.Filter(elastic.NewRangeQuery("status").Gt(1))
res, err := client.Search().Index("t_content").Query(boolQ).Do(context.Background())
printEmployee(res, err)
//打印查询到的Employee
func printEmployee(res *elastic.SearchResult, err error)
if err != nil
print(err.Error())
return
var typ Content
for _, item := range res.Each(reflect.TypeOf(typ)) //从搜索结果中取数据的方法
t := item.(Content)
fmt.Printf("\\n%#v\\n", t)
以上是关于docker安装 es7.17.6+IK分词+Go elastic的主要内容,如果未能解决你的问题,请参考以下文章