Elasticsearch配置IK分词器-扩展词库和热更新

系列文章目录



前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
在这里插入图片描述
Elasticsearch Windows上安装 - Java小强技术博客 (javacui.com)

kibana Windows上安装 - Java小强技术博客 (javacui.com)

Elasticsearch配置IK分词器 - Java小强技术博客 (javacui.com)

IK分词器扩展词停用词 - Java小强技术博客 (javacui.com)

配置文件elasticsearch-8.2.2\plugins\ik\config\IKAnalyzer.cfg.xml,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <!-- <entry key="ext_dict">duosuna.dic</entry> -->
     <!--用户可以在这里配置自己的扩展停止词字典-->
    <!-- <entry key="ext_stopwords">stopword.dic</entry> -->
    <!--用户可以在这里配置远程扩展字典 -->
    <entry key="remote_ext_dict">http://localhost:8009/javacui.dic</entry>
    <!--用户可以在这里配置远程扩展停止词字典-->
    <entry key="remote_ext_stopwords">http://localhost:8009/stopword.dic</entry>
</properties>

上面两个扩展词和停用词,可以在和配置文件统计的目录增加dic文件来扩展相关词汇,如果要热更新,就需要下面两个配置,远程词典。

其中 location 是指一个 url,比如 http://yoursite.com/getCustomDict,该请求只需满足以下两点即可完成分词热更新。

该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。

该 http 请求返回的内容格式是一行一个分词,换行符用 \n 即可。

满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。

可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 或其他简易 http server 下,当 .txt 文件修改时,http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇,并更新这个 .txt 文件。

这里我把dic这个文件放到了本地Nginx,在Nginx的html文件新建一个dic文件夹,然后把dic文件拷贝过来,增加Nginx配置

server {
    listen 8009;
    client_max_body_size 50m;
    root "D:/Soft/nginx/html/dic";
    index index.html;
}

这样ES的IK分词器就会从Nginx拉取词典,修改词典后,IK会在一定间隔后同步该文件。

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ElasticsearchIK分词器是一种中文分词器,可以将中文文本分成一个个有意义的词语,以便于搜索和分析。它支持细粒度和粗粒度两种分词模式,可以根据不同的需求进行配置IK分词器还支持自定义词典和停用词,可以提高分词的准确性和效率。在Elasticsearch中,IK分词器是非常常用的中文分词器之一。 ### 回答2: Elasticsearch是一个开源的搜索引擎,旨在提供实时搜索和分析功能。作为强大的搜索引擎Elasticsearch极大的依赖于高效的分词器。而其中IK分词器是目前常见的分词器之一。 IK分词器是一款用于中文分词的工具。它采用了一种基于规则和词库相结合的分词算法。通常情况下,IK分词器的工作流程是:首先,将文本按照信息增益、词频、文本跨度等属性计算得到其初始的分词结果。然后,IK分词器通过对分词结果进行多轮处理,逐渐优化分词结果,以达到更为准确、严谨的分词效果。 此外,IK分词器还具备一些较为强大的功能。例如,支持中文姓名、词语拼音、数字、英文、日文等的分词处理。支持自定义词典、停用词、同义词等配置。支持了多种分词模式,如细粒度分词模式,搜索引擎分词模式和最少分词模式等等。这些功能的不断完善和升级,使IK分词器逐渐成为在中文文本分析领域常用的分词器之一。 总体来说,IK分词器Elasticsearch中的应用是非常广泛的,它不仅能够提高搜索效果,而且还能加强文本拓展和分析的功能。随着数据量的不断增长和应用场景的不断拓展,对于一款高效、灵活的分词器的需求越来越大。相信IK分词器在未来的应用中,会有更加广泛的空间和应用。 ### 回答3: Elasticsearchik分词器是一种常用的中文全文检索分词器,能够对中文文本进行分词,将整篇文本划分成有意义的词语,并且支持多种分词模式。 该分词器的优点在于,它采用了基于词典和规则的分词算法,对中文分词效果非常好,特别是对于一些细分领域的专业术语等难分难识的词汇,在ik分词器的支持下也能够准确地被识别和分词。另外,ik分词器还支持自定义词典,可以根据应用场景自定义添加词汇,进一步提高分词效果和搜索准确率。 除此之外,ik分词器还支持多种分词模式,包括最细粒度分词模式、普通分词模式、搜索分词模式和面向中文搜索的ik_smart分词模式等,可以根据实际需求进行选择和配置。 总之,ik分词器Elasticsearch中一个非常实用的中文分词组件,对于中文全文检索和搜索应用具有重要的作用,可以提高搜索效果、加速搜索响应速度,为用户提供更加优质的搜索服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java毕设王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值