Java项目(二)--Springboot + ElasticSearch 构建博客检索系统(3)- 分词器介绍

分词器介绍

ES作为全文检索服务,势必要对原始的文本进行内容的拆分,才能进行有效的索引。而拆分原始内容到一个一个小的词,或语义单元,这部分的功能由ES的分词器去完成的。

常见分词器

standard:ES默认的分词器,会将词汇单元进行小写形式,并且去除一些停用词和标点符号等等。支持中文,采用的方法为单字切分。
在这里插入图片描述
在这里插入图片描述

simple:该分词器首先通过非字母字符来分割文本信息,然后将词汇单元统一为小写形式。该分词器会去除掉数字类型的一些字符。

whitespace:仅仅是去除空格,然后对字符没有任何的小写化,并且该分词器不支持中文,而且它对生成的词汇单元没有作其他的一些标准化的处理。

language:特定语言的分词器,目前该分词器也是不支持中文的。

IK分词器的安装和使用

IK分词器是目前ES开源社区对于中文分词支持最好的第三方的插件。

首先,我们下载IK分词器插件。
IK分词器github地址为:
https://github.com/medcl/elasticsearch-analysis-ik
点击右下角releases
在这里插入图片描述
然后找到ES对应的版本,点击Assets,然后点击下载zip包。
在这里插入图片描述
下载完之后解压到elasticsearch-6.8.23\plugins\目录下
在这里插入图片描述
在这里插入图片描述
然后重启ES,IK分词器才会生效。
IK分词器插件默认提供了两种分词器:
ik_smart
在这里插入图片描述
ik_max_word
在这里插入图片描述
那么,为什么IK分词器对于中文有如此本地化的理解呢,原因是IK分词器内置了很多字典。
在这里插入图片描述
在这里插入图片描述
如果某个词没被分词成功,则在字典里添加重启即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中使用IK分词器进行查询,你需要进行以下步骤: 1. 添加IK分词器依赖项:首先,在你的Java项目中添加IK分词器的依赖项。你可以从GitHub上找到IK分词器的源代码,并将其作为一个Maven或Gradle项目导入到你的项目中。 2. 创建Elasticsearch客户端:按照上述步骤创建Elasticsearch客户端实例。 3. 创建搜索请求和分词器设置:创建一个搜索请求,并设置使用IK分词器进行搜索。以下是一个示例: ```java SearchRequest searchRequest = new SearchRequest("your_index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("your_field", "your_search_text").analyzer("ik_max_word")); searchRequest.source(searchSourceBuilder); ``` 在上面的示例中,我们使用`matchQuery`来构建一个匹配查询,并使用`analyzer`方法将分词器设置为`ik_max_word`。你可以根据需要选择不同的IK分词器(例如`ik_smart`或其他自定义IK分词器)。 4. 执行搜索请求:使用客户端执行搜索请求,并处理搜索结果。以下是一个示例: ```java SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); SearchHits hits = response.getHits(); for (SearchHit hit : hits.getHits()) { String sourceAsString = hit.getSourceAsString(); // 处理搜索到的文档数据 } ``` 在上面的示例中,我们通过调用`client.search`方法来执行搜索请求,并使用`getHits`方法获取搜索结果的列表。然后,我们可以遍历搜索结果,并处理每个搜索命中的文档数据。 请注意,以上示例是一个简单的示例,你可能需要根据你的具体需求进行更多的配置和操作。确保已经安装并配置了IK分词器,并且已经创建了相应的索引和映射。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值