大型网站维护费一年多少,网站开发学哪一个好,那些行业需要做网站,稿定在线图片编辑本文已收录于专栏 《中间件合集》 目录 背景介绍版本选择优势说明集成过程1.下载安装包2.解压安装包3.重启ElasticSearch服务3.1通过ps -ef | grep elastic查看正在启动的es进程号3.2使用kill -9 xxx 杀死进程3.3使用 ./elasticsearch 启动es服务 分词测试细粒度分词方式分词请…本文已收录于专栏 《中间件合集》 目录 背景介绍版本选择优势说明集成过程1.下载安装包2.解压安装包3.重启ElasticSearch服务3.1通过ps -ef | grep elastic查看正在启动的es进程号3.2使用kill -9 xxx 杀死进程3.3使用 ./elasticsearch 启动es服务 分词测试细粒度分词方式分词请求分词结果 粗粒度分词方式分词请求分词结果 项目中代码结果 总结提升 背景介绍 我们在项目中集成了ElasticSearch服务之后需要对内容进行分词处理。这时候就需要用到分词器。其实ElasticSearch服务自身也会带有分词器。ElasticSearch服务自带的分词器是单个字进行分的。在我们的业务当中要求对整个词进行拆分。这时候就用到了ik分词器。ik分词器是词库分词的分词方式。当然根据我们的业务不同还可以选择其他的分词器。
版本选择 优势说明
Elasticsearch的IK分词器是一种流行的中文分词器它有以下几个优势
「 中文分词 」IK分词器专门用于处理中文文本能够将连续的中文字符序列切分成有意义的词语。它支持细粒度和智能切分两种分词模式可以根据需求选择合适的模式。「 高效性能 」IK分词器在分词速度和内存占用方面具有较高的性能。它采用了基于词典的分词算法和N-gram模型能够快速准确地进行分词处理。「支持扩展词典 」IK分词器允许用户自定义扩展词典可以添加特定的词汇如专业术语、品牌名等以提高分词的准确性和覆盖范围。「支持拼音分词」IK分词器还提供了拼音分词功能可以将中文文本转换成拼音并进行分词处理。这对于拼音搜索和拼音排序等场景非常有用。「多语言支持」除了中文IK分词器还支持其他语言的分词处理如英文、日文等。它可以根据不同的语言特点进行相应的分词处理提高搜索的准确性和效果。
集成过程
1.下载安装包
ik地址https://github.com/medcl/elasticsearch-analysis-ik/releases
2.解压安装包
解压并重命名为IK 将整个文件夹上传到es 中的 plugins 目录中
unzip elasticsearch-analysis-ik-7.6.1.zip3.重启ElasticSearch服务
3.1通过ps -ef | grep elastic查看正在启动的es进程号
3.2使用kill -9 xxx 杀死进程
3.3使用 ./elasticsearch 启动es服务 分词测试
细粒度分词方式
分词请求
POST test002/_analyze?prettytrue{
text:我们是软件工程师,
tokenizer:ik_max_word
}
分词结果
{tokens: [{token: 我们,start_offset: 0,end_offset: 2,type: CN_WORD,position: 0},{token: 是,start_offset: 2,end_offset: 3,type: CN_CHAR,position: 1},{token: 软件工程,start_offset: 3,end_offset: 7,type: CN_WORD,position: 2},{token: 软件,start_offset: 3,end_offset: 5,type: CN_WORD,position: 3},{token: 工程师,start_offset: 5,end_offset: 8,type: CN_WORD,position: 4},{token: 工程,start_offset: 5,end_offset: 7,type: CN_WORD,position: 5},{token: 师,start_offset: 7,end_offset: 8,type: CN_CHAR,position: 6}]
}
粗粒度分词方式
分词请求
POST test002/_analyze?prettytrue{
text:我们是软件工程师,
tokenizer:ik_max_word
}
分词结果
这一次得到了分词的效果
json
{tokens: [{token: 我们,start_offset: 0,end_offset: 2,type: CN_WORD,position: 0},{token: 是,start_offset: 2,end_offset: 3,type: CN_CHAR,position: 1},{token: 软件,start_offset: 3,end_offset: 5,type: CN_WORD,position: 2},{token: 工程师,start_offset: 5,end_offset: 8,type: CN_WORD,position: 3}]
}
项目中
代码
Autowiredprivate RestHighLevelClient client;public void test() throws IOException {AnalyzeRequest analyzeRequest AnalyzeRequest.withGlobalAnalyzer(ik_smart, 武梓龙来写CSDN博客来了);AnalyzeResponse analyze client.indices().analyze(analyzeRequest, RequestOptions.DEFAULT);for (AnalyzeResponse.AnalyzeToken token : analyze.getTokens()) {System.out.println(token.getTerm());}} 示例是将一段话进行分词操作其中withGlobalAnalyzer方法的第一个参数是指定分词器ik_smart分词器(当然也可以使用其他分词器根据业务的需求进行调整) 是es服务中安装了IK的插件实现的如果不安装IK分词器的插件ik_smart分词器是无法使用的。第二个参数就是我们分词的内容了。
结果 总结提升 IK分词器在中文分词方面具有较好的准确性和性能支持自定义词典和拼音分词适用于各种中文搜索和分析场景。它是Elasticsearch中常用的中文分词器之一。 此文章对你有用的话记得留言点赞收藏哦