【开发心得】es7 spring data elastic search Java API 分词 操作
前言:
有的时候,我们希望能够直接借助es的分词功能,可以借助kibana或者其他可视化工具,甚至是rest请求,直接验证分词结果。
(elk7.8环境,配置了ik插件)
GET _analyze
{
"analyzer":"ik_smart",
"text":"小龙女对杨过笑了"
}
{
"tokens" : [
{
"token" : "小龙女",
"start_offset" : 0,
"end_offset" : 3,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "对",
"start_offset" : 3,
"end_offset" : 4,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "杨过",
"start_offset" : 4,
"end_offset" : 6,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "笑了",
"start_offset" : 6,
"end_offset" : 8,
"type" : "CN_WORD",
"position" : 3
}
]
}
对于一些特殊的名词,我们可以借助ik的自定义热词更新,如使用mysql完成。
如果想使用Java(elastic search high level client,spring data elastic template等)
参考如下实现(es7.x,spring data es 4.x 高版本实现):
AnalyzeRequest request = AnalyzeRequest.withIndexAnalyzer(
"es_document_data",
"ik_smart",
"杨过对小龙女笑了"
);
AnalyzeResponse response = restHighLevelClient.indices().analyze(request, RequestOptions.DEFAULT);
List<AnalyzeResponse.AnalyzeToken> tokens = response.getTokens();
DetailAnalyzeResponse detail = response.detail();
System.out.println(JSON.toJSONString(tokens));
// System.out.println(detail);
特此记录下,百度很多搜到的都是->https://www.cnblogs.com/technologykai/articles/9792200.html
但是原博很明显版本是基于低于7以下的版本处理的.