Bootstrap

在Elasticsearch中中文分词器怎么设置?

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;

推荐专栏10天学会使用asp.net编程AI大模型,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可接项目赚外快,绝对划算。不仅学会如何编程,还将学会如何将AI技术应用到实际问题中,为您的职业生涯增添一笔宝贵的财富。

-------------------------------------正文----------------------------------------

在Elasticsearch中设置中文分词器,通常推荐使用第三方插件,因为Elasticsearch默认的分词器对中文支持不是很好。以下是设置中文分词器的步骤:

使用IK Analyzer插件

IK Analyzer是一个开源的、针对中文分词的Elasticsearch插件,它支持自定义词典和扩展词库。

  1. 下载IK Analyzer插件

    • 访问IK Analyzer的GitHub页面或官方网站,下载与你的Elasticsearch版本相匹配的插件包。
  2. 安装IK Analyzer插件

    • 停止Elasticsearch服务。
    • 将下载的插件包放入Elasticsearch的plugins目录下。
    • 解压插件包。
    • 重新启动Elasticsearch服务。l
    # 以tar.gz格式的插件包为例
    cd /path/to/elasticsearch/plugins/
    tar -xvf ik-analyzer-7.x.x.tar.gz
  3. 配置IK Analyzer

    • 在Elasticsearch的配置文件elasticsearch.yml中,添加IK Analyzer的配置。
      • 如果需要使用IK Analyzer的停用词过滤,可以添加停用词过滤器的配置。
    index.analysis.analyzer.ik_max_word.type: custom
    index.analysis.analyzer.ik_max_word.tokenizer: ik_max_word
  4. 测试IK Analyzer

    • 使用_analyze API测试IK Analyzer的效果。
    POST /_analyze
    {
      "analyzer": "ik_max_word",
      "text": "今天天气不错"
    }

使用其他中文分词器插件

除了IK Analyzer,还有其他一些中文分词器插件,如:

  • elasticsearch-analysis-pinyin:提供拼音分词。
  • elasticsearch-analysis-ik:另一个IK Analyzer插件版本。

安装和配置方法与IK Analyzer类似。

自定义中文分词器

如果你需要更精细的控制或者想要实现特定的分词逻辑,可以自定义中文分词器:

  1. 创建自定义分词器

    • 在索引的映射中定义一个新的分词器,并指定分词器类型为custom
    PUT my_index
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_custom_chinese_analyzer": {
              "type": "custom",
              "tokenizer": "my_tokenizer",
              "filter": ["lowercase"]
            }
          },
          "tokenizer": {
            "my_tokenizer": {
              "type": "ik_max_word"  // 使用IK Analyzer的分词器
            }
          }
        }
      }
    }
  2. 应用自定义分词器

    • 将自定义分词器应用到具体的字段。
    PUT my_index/_mapping
    {
      "properties": {
        "content": {
          "type": "text",
          "analyzer": "my_custom_chinese_analyzer"
        }
      }
    }

通过这些步骤,你可以在Elasticsearch中设置中文分词器,以提高中文文本处理的准确性和效率。

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。
或关注博主免费专栏【程序员宝典--常用代码分享】里面有大量面试涉及的算法或数据结构编程题。

博主其它经典原创:《管理心得--如何高效进行跨部门合作》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》,及
C#实例:SQL如何添加数据》,《C#实战分享--爬虫的基础原理及实现》欢迎大家阅读。。

;