ik分词器配置自定义词典+追加写入文件

311 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

首先找到 elasticsearch-7.9.2\plugins\elasticsearch-analysis-ik-7.9.2\config目录 在这里插入图片描述 打开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">new_word.dic;GBT5271.1-2000信息技术基本术语.dic;GBT22263.1-2008 物流公共信息平台应用开发指南 第1部分:基础术语.dic;TJDW114-2008 中国列车运行控制系统CTCS名词术语(V1-0).dic;术语表(中英).dic;铁路车站及枢纽术语.dic;铁路旅客运输组织术语.dic;铁路名词术语全集.dic;业务术语表.dic</entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

配置多个词典使用分号分隔 字典格式如图 在这里插入图片描述 字典格式如图 windows(CRLF) UTF-8 这里分享一个程序中全文搜索未查询出输入后,将搜索关键字添加到词典中 自动追加词典的代码

public static void main(String[] args) {
        writeFile("C:\\Users\\Herbs\\Desktop\\"+"dic.dic","我爱"+"\n");
    }


    /**
     * 写入文件,如果文件存在,追加写入
     */
    public static void writeFile(String pathname, String content) {
        try {
            File writeName = new File(pathname);
            try (FileWriter writer = new FileWriter(writeName, true);
                 BufferedWriter out = new BufferedWriter(writer)
            ) {
                out.write(content);
                out.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }