前言

处于项目需要,我们需要在elasticsearch中设置自定义的词典与停用词,这里简单说明下其配置方法。

自己这里是通过docker以及docker-compose的方式来使用的,直接使用elasticsearch的方法流程与之类似,可以看下面的参考。

配置文件

项目目录

项目目录结构大致如下:

(base) ➜  elasticsearch tree .
.
├── config
│   ├── IKAnalyzer.cfg.xml
│   ├── stopwords.dic
│   └── userwords.dic
├── docker-compose.yml
└── Dockerfile

1 directory, 5 files

Dockerfile

其中Dockerfile中内容如下:

FROM elasticsearch:7.7.1
RUN yes | ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.1/elasticsearch-analysis-ik-7.7.1.zip

docker-compose.yml

其中docker-compose.yml中内容如下:

version: '3'
services:
    es:
        image: elasticsearch-ik:7.7.1
        container_name: elasticsearch
        network_mode: "host"
        environment: 
            - discovery.type=single-node
        ports:
            - 9200:9200
            - 9300:9300
        volumes: 
            - ./config/IKAnalyzer.cfg.xml:/usr/share/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml
            - ./config/userwords.dic:/usr/share/elasticsearch/config/analysis-ik/userwords.dic
            - ./config/stopwords.dic:/usr/share/elasticsearch/config/analysis-ik/stopwords.dic

IKAnalyzer.cfg.xml

其中IKAnalyzer.cfg.xml中内容如下:

<?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">userwords.dic</entry>
     <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopwords.dic</entry>
    <!--用户可以在这里配置远程扩展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    <!--用户可以在这里配置远程扩展停止词字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

stopwords.dic

其中stopwords.dic内容如下:

userwords.dic

其中userwords.dic内容如下:

曹操和
李德方

启动方式

docker-compose up -d

结果

效果如图:

elasticsearch_userdict

可以看到,里面李德方曹操和分别作为词语被拆分出来,同时这个词直接就被过滤掉了。

参考

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Volantis 作为主题,总访问量为
载入天数...载入时分秒...
冀ICP备20001334号