elasticsearch的实现全文检索

elasticsearch的实现全⽂检索
居家新主张elasticsearch⼀个准实时的搜索引擎,基于lucene构建,它的主要强项还是在全⽂检索⽅⾯。⼯作中还是使⽤到了这部分功能,这⾥做⼀个简单的总结,可以使初次使⽤的⼈很快的配置和使⽤。
⼀、全⽂检索的概念
⾸先介绍全⽂检索的概念,就是对⼀篇⽂章进⾏索引,可以根据关键字搜索,类似于mysql⾥的like语句。
全⽂索引就是把内容根据词的意义进⾏分词,然后分别创建索引,例如”你们的激情是因为什么事情来的” 可能会被分词成:“你
们“,”激情“,“什么事情“,”来“ 等token
这样当你搜索“你们” 或者 “激情” 都会把这句搜出来。
曹素华⼆、内置分词器
elasticsearch实现全⽂索引,⾸先要确定分词器,elasticsearch默认有很多分词器,你可以参考elasticsearch的官⽅⽂档。了解分词器主要是怎么实现的。
你可以使⽤
curl -XPOST “我是中国⼈”
命令来了解各种分词器的分词效果。
{
“token”: “我”,
“start_offset”: 1,
“end_offset”: 2,
“type”: “”,
“position”: 0
}
,
{
“token”: “是”,
“start_offset”: 2,
“end_offset”: 3,
“type”: “”,
“position”: 1
}
,
{
“token”: “中”,
“start_offset”: 3,
“end_offset”: 4,
“type”: “”,
线粒体基因组测序
“position”: 2
}
,
{
“token”: “国”,
“start_offset”: 4,
“end_offset”: 5,
“type”: “”,
“position”: 3有线电视解码器
}
苏州大学体育学院
,
{
“token”: “⼈”,
“start_offset”: 5,
“end_offset”: 6,
“type”: “”,
“position”: 4
}
三、中⽂分词器
三、中⽂分词器
⼀般中⽂分词器⼀般使⽤第三⽅的ik分词器、mmsegf分词器和paoding分词器,他们最初可能构建于lucene,后来移植于elasticsearch。 在最新版的elasticsearch,我主要使⽤了ik分词器。
我使⽤的elsaticsearch是2.3.3,elasticsearch和ik分词的对应版本:
ik分词的安装:
去ik分词的github去下载源码⽤maven编译:
对应⽬录:
美国蓝动力
IndicesAdminClient indicesAdminClient = client.admin().indices();
AnalyzeAction analyzeAction =  AnalyzeAction.INSTANCE;
System.out.println("ik分词分析:"+"中华⼈民共和国国歌 ");
AnalyzeRequestBuilder request = new  AnalyzeRequestBuilder(indicesAdminClient,analyzeAction,"text","中华⼈民共和国国歌");
request.setAnalyzer("ik_max_word");
//  request.setAnalyzer("ik_smart");
request.setTokenizer("ik");
// Analyzer(分析器)、Tokenizer(分词器)
List<AnalyzeResponse.AnalyzeToken> listAnalysis = ute().actionGet().getTokens();
for( AnalyzeResponse.AnalyzeToken b : listAnalysis ){
System.out.println( b.getTerm() );
}
ik_max_word: 会将⽂本做最细粒度的拆分,⽐如会将“中华⼈民共和国国歌”拆分为“中华⼈民共和国,中华⼈民,中华,华⼈,⼈民共和国,⼈民,⼈,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
ik_smart: 会做最粗粒度的拆分,⽐如会将“中华⼈民共和国国歌”拆分为“中华⼈民共和国,国歌”。
可根据需求去选择所需要的分词器。

本文发布于:2024-09-20 15:28:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/479738.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分词器   分词   检索
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议