本文所提供的视频是依据此文章进行录制。http://my.oschina.net/besthadoop/blog/698698
录制过程使用了跟Elasticsearch 2.3.3匹配的IK分词器,大家可以直接下载该IK分词器,而不用安装maven自己编译打包。下载地址:http://www.besthadoop.com/course/28/material/
大家在使用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);
}
}
大家也可以加入群进行交流。