本文所提供的视频是依据此文章进行录制。
录制过程使用了跟Elasticsearch 2.3.3匹配的IK分词器,大家可以直接下载该IK分词器,而不用安装maven自己编译打包。下载地址:
大家在使用IK分词的时候,一定要注意配置这几个属性,否则IK分词是不生效的。
index.analysis.analyzer.default.type: ik
动态更改词典的源码,可以写一个Servlet进行修改。
package com.best.dic;import java.io.IOException;import java.io.OutputStream;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/GetDic")public class GetDic extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public GetDic() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Last-Modified", System.currentTimeMillis() + ""); response.setHeader("ETag", UUID.randomUUID().toString()); // 这句话的意思,是让浏览器用utf8来解析返回的数据 response.setHeader("Content-type", "text/html;charset=UTF-8"); StringBuilder builder = new StringBuilder("码农"); builder.append("\n"); builder.append("58码农"); builder.append("\n"); builder.append("匠心精神"); OutputStream ps = response.getOutputStream(); // 这句话的意思,使得放入流的数据是utf8格式 ps.write(builder.toString().getBytes("UTF-8")); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}
大家也可以加入群进行交流。