分词器

内置标准分词器

分析英文

curl -s 192.168.1.27:9200/_analyze \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq
{
    "analyzer": "standard",
    "text": "My name is Will, I'm 32 years old!"
}
EOF

或将文本写入analyze.json文件

curl 192.168.1.27:9200/_analyze \
  -H "Content-Type: application/json" \
  -d @analyze.json | jq

ik 中文分词器安装(每个节点都操作)

下载对应版本的包

# https://release.infinilabs.com/analysis-ik/stable/
wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.17.5.zip

解压

unzip http://elasticsearch-analysis-ik-7.17.5.zip/ -d /elk/software/es7/elasticsearch-7.17.5/plugins/ik

重启 ES

systemctl restart elasticsearch

ik 中文分词器的使用

细粒度

curl -s 192.168.1.27:9200/_analyze \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq
{
    "analyzer": "ik_max_word",
    "text": "和我在成都的街头走一走,哦呜哦,直到所有的灯都熄灭了,也不停留!"
}
EOF

粗粒度

curl -s 192.168.1.27:9200/_analyze \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq
{
    "analyzer": "ik_smart",
    "text": "和我在成都的街头走一走,哦呜哦,直到所有的灯都熄灭了,也不停留!"
}
EOF

ik 中文分词器自定义字典(每个节点都操作)

进入ik分词器插件安装目录

cd /elk/software/es7/elasticsearch-7.17.5/plugins/ik/config

自定义字典

cat > my_customize.dic << EOF
上号
德玛西亚
艾欧尼亚
亚索
贼6
EOF

加载自定义字典

vim IKAnalyzer.cfg.xml
    <entry key="ext_dict">my_customize.dic</entry>

重启 ES

systemctl restart elasticsearch

测试

curl -s 192.168.1.27:9200/_analyze \
  -H "Content-Type: application/json" \
  -d @- <<EOF | jq
{
    "analyzer": "ik_smart",
    "text": "嗨,兄弟!上号,我德玛西亚和艾欧尼亚都有号,我亚索贼6!"
}
EOF

Last updated