环境搭建
docker部署
bash
# 基于docker部署es7.8.0
mkdir -p /root/es/plugins /root/es/data /root/es/config && touch /root/es/config/elasticsearch.yml && chmod 777 /root/es/**
docker run -d --name es -p 9200:9200 -p 9300:9300 \
-v /root/es/data:/usr/share/elasticsearch/data \
-v /root/es/plugins:/usr/share/elasticsearch/plugins \
-v /root/es/conig/elasticsearch.yml:/usr/share/elasticsearch/conig/elasticsearch.yml \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
docker.io/library/elasticsearch:7.8.0
配置分词器
bash
# 配置分词器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip \
&& mkdir -p ik/ && unzip -od ik/ elasticsearch-analysis-ik-7.8.0.zip \
&& docker cp ik es:/usr/share/elasticsearch/plugins/ \
&& docker restart es
docker es是什么版本就使用什么版本的ik分词器,具体文档参考elasticsearch-analysis-ik。
http
# 分词器验证
PUT /index
PUT /index/_mapping
{"properties": {"content": {"type": "text", "analyzer": "ik_max_word","search_analyzer":"ik_smart"}}}
GET /index/_mapping
# 查看指定索引下的分词结果
POST /{index}/_analyze
{
"text": "用来验证分词结果",
"analyzer": "ik_max_word"
}
常见分词器
分词器 | 效果 |
---|---|
standard | 默认的分词器,会将大小转小写,按照单词分词。 |
ik | 中文分词器,支持自定义词库。 |
simple | 会将大写转小写,按照非字母切分,符号过滤 |
whitespace | 按照空格分词,不会转小写。 |
custom | 自定义分词器 |
kibana
bash
echo "server.name: kibana\nserver.host: "0"\nelasticsearch.hosts: [ "http://{esIp}:{esPort}" ]\nxpack.monitoring.ui.container.elasticsearch.enabled: true" > /root/kibana.yml
docker run -d --name=kibana --restart=always -p 5601:5601 \
-v /root/kibana.yml:/usr/share/kibana/config/kibana.yml \
docker.elastic.co/kibana/kibana:7.8.0
- ES的地址要写ip地址,不要写localhost。kibana的版本与ES的版本保持一致。