自定义字典控制器
首先新建一个控制器用来处理Rest请求的添加删除词典,以及查询词典。
package com.topcom.test.es.controller;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Author BigKang
* @Date 2021/1/28 1:58 下午
* @Motto 仰天大笑撸码去, 我辈岂是蓬蒿人
* @Summarize 字典控制器
*/
@RestController
public class DictController {
/**
* 最后修改时间
*/
private Date lastModified = new Date();
/**
* 停用词最后修改时间
*/
private Date stopLastModified = new Date();
/**
* 分词词典表
*/
private List<String> dictTable = new ArrayList<>();
/**
* 停用词词典表
*/
private List<String> stopDictTable = new ArrayList<>();
/**
* 初始化自定字典,也可以从数据库读取然后进行加载
*/
@PostConstruct
public void init() {
dictTable.add("aaa");
//dictTable.add("盖伦大宝剑");
stopDictTable.add("枪支");
stopDictTable.add("仿真枪");
}
/**
* 添加词典
* @param dict 词典
* @param stop 是否停用词
* @return
*/
@PostMapping("addDict")
public boolean addDict(String dict,Boolean stop) {
// 判断是否存在,如果不存在则添加
if (dict != null && dict.trim().length() > 0) {
// 如果不是停用词则添加到词典
if(stop == null || !stop && !dictTable.contains(dict)){
dictTable.add(dict);
lastModified = new Date();
return true;
}else if(stop && !stopDictTable.contains(dict)){
stopDictTable.add(dict);
stopLastModified = new Date();
return true;
}<