ElasticSearch + IK分词 + 拼音分词

Docker 安装 ES

因为是测试需要,所以跟公司版本保持一致即可

sudo docker pull elasticsearch:7.4.2

sudo mkdir -p /data/es_home/config/config
sudo mkdir -p /data/es_home/config/data
sudo mkdir -p /data/es_home/config/plugins

echo "http.host: 0.0.0.0" >> /data/es_home/config/elasticsearch.yml

sudo chmod -R 777 /data/es_home/

sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
 -e "discovery.type=single-node" \
 -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
 -v /data/es_home/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 -v /data/es_home/data:/usr/share/elasticsearch/data \
 -v /data/es_home/plugins:/usr/share/elasticsearch/plugins \
 -d elasticsearch:7.4.2

常用命令

docker ps 查看是否启动
docker logs elasticsearch 启动日志查询
docker restart elasticsearch 重启
docker exec -it elasticsearch bash 进入

验证是否成功,打开链接 http://你的ip地址:9200
在这里插入图片描述

Docker 安装 Kibana

相当于 es 的可视化,常用功能,监控,控制台等

sudo docker pull kibana:7.4.2

sudo mkdir -p /data/kibana_home # 创建挂载配置目录
sudo chmod 777 /data/kibana_home # 赋值读写执行权限
sudo echo "server.host: 0.0.0.0" >> /data/kibana_home/kibana.yml
sudo echo "elasticsearch.hosts: http://0.0.0.0:9200" >> /data/kibana_home/kibana.yml
# 0.0.0.0 表示你的es容器ip,查看es容器的ip:docker inspect es容器id | grep IPAddress

sudo docker run --name kibana -v /data/kibana_home/kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 -d kibana:7.4.2

验证是否成功,打开页面:http://你的ip地址:5601/app/kibana,如果显示如下,则为成功
在这里插入图片描述

安装插件

安装 ik 分词器插件和拼音分词器插件,请注意,版本需要和 es 版本保持一致
ik 分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik
拼音分词器下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin
文末提供下载
下载后解压至 /data/es_home/config/plugins 文件夹内,重启 es 即可

创建分词器

# 删除索引
DELETE /my_index

# 新建索引 my_index,并新建拼音分词器 ik_smart_pinyin、ik_max_word_pinyin
PUT /my_index
{
  "settings": {
        "analysis": {
            "analyzer": {
                "ik_smart_pinyin": {
                    "type": "custom",
                    "tokenizer": "ik_smart",
                    "filter": ["my_pinyin", "word_delimiter"]
                },
                "ik_max_word_pinyin": {
                    "type": "custom",
                    "tokenizer": "ik_max_word",
                    "filter": ["my_pinyin", "word_delimiter"]
                }
            },
            "filter": {
                "my_pinyin": {
                    "type" : "pinyin",
                    "keep_separate_first_letter" : true,
                    "keep_full_pinyin" : true,
                    "keep_original" : true,
                    "limit_first_letter_length" : 16,
                    "lowercase" : true,
                    "remove_duplicated_term" : true 
                }
            }
        }
  }
}

# 新建字段,并设置字段分词器为拼音
PUT /my_index/_mapping
{ 
"properties" : {
"name" : {
"type": "text",
"analyzer": "ik_smart_pinyin"
}
}
}

# 查询索引结构
GET /my_index/_mapping

# 新建测试数据
POST /my_index/_bulk
{ "index": { "_id": 1}}
{ "name": "张三"}
{ "index": { "_id": 2}}
{ "name": "张四"}
{ "index": { "_id": 3}}
{ "name": "李四"}
{ "index": { "_id": 4}}
{ "name": "亚特兰蒂斯"}
{ "index": { "_id": 5}}
{ "name": "Club Med 丽江度假村"}
{ "index": { "_id": 6}}
{ "name": "Club Med Joyview 安吉度假村村"}
{ "index": { "_id": 7}}
{ "name": "亚特"}
{ "index": { "_id": 8}}
{ "name": "蒂斯"}

# 测试是否匹配
GET /my_index/_search
{
  "query": {
    "match": {
      "name": "亚特兰蒂斯"
    }
  }
}

测试效果

在这里插入图片描述在这里插入图片描述在这里插入图片描述

扩展

自定义分词,打开 /data/es_home/plugins/analysis-ik/config/IKAnalyzer.cfg.xml,可使用ext_dict,可读取当前文件夹dic文件,一般使用remote_ext_dict,做一个接口让ik远程读取扩展词即可

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!--<entry key="remote_ext_dict"></entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

ik + pinyin-7.4.2 下载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值