首页 > 其他分享 >ES--自定义分词器

ES--自定义分词器

时间:2024-01-16 17:47:33浏览次数:24  
标签:自定义 tokenizer -- pinyin analyzer 分词器 ES 拼音

默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。

 

elasticsearch中分词器(analyzer)的组成包含三部分:

  • character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符

  • tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smart

  • tokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等

 

文档分词时会依次由这三部分来处理文档:

 

 

声明自定义分词器的语法如下:

PUT /test
{
  "settings": {
    "analysis": {
      "analyzer": { // 自定义分词器
        "my_analyzer": {  // 分词器名称
          "tokenizer": "ik_max_word",
          "filter": "py"
        }
      },
      "filter": { // 自定义tokenizer filter
        "py": { // 过滤器名称
          "type": "pinyin", // 过滤器类型,这里是pinyin
 "keep_full_pinyin": false,
          "keep_joined_full_pinyin": true,
          "keep_original": true,
          "limit_first_letter_length": 16,
          "remove_duplicated_term": true,
          "none_chinese_pinyin_tokenize": false
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "my_analyzer",
        "search_analyzer": "ik_smart"
      }
    }
  }
}
 

标签:自定义,tokenizer,--,pinyin,analyzer,分词器,ES,拼音
From: https://www.cnblogs.com/daitu66/p/17968172

相关文章

  • HR岗位的OKR制定案例
    目标一:提升员工满意度 关键结果一:90%的员工对HR的服务表示满意。关键结果二:实施员工满意度调查,每季度进行一次。 分析:员工满意度是组织文化和员工关系管理的重要指标。为了达到90%的员工满意度,HR团队需要深入了解员工的需求,提供及时、有效的支持和服务。此外,定期的满意度......
  • 通过Power BI实现数据的实时刷新与展示1-DirectQuery
    使用微软PowerBI实现数据的实时刷新并展示,一直是一个老大难问题。微软在实时刷新展示这个方面做的一直很差,目前官方自动刷新工具Gateway也仅仅能支持最小30分钟/次的频率。但是对于一些经常变动的数据30分钟的刷新频率显然是不够用的,因此就只能自力更生各凭本事了。今天就介绍一......
  • GBD调试之跳转执行代码(十六)
    跳转执行即跳转到指定位置去执行代码,也就是不按照正常的执行顺序往下执行代码而是跳过某些代码或者重复的反复的执行某些代码。这是非常有用的,假如不小心错过了观察某个函数的执行或者错过了某个重要的代码,可以通过jump命令重新执行一遍相关的代码。jump命令语法如下所示:jumploc......
  • 计划任务 显示消息 已弃用 计划任务弹出提示
    简介:计划任务的显示消息已弃用了。但是我这里需要一个每周一早上8点重启的任务,太多懒人不关电脑了,更新不执行,稳定下降,很多需要重启才能完成的功能均不正常,只好计划任务每周重启一下吧。但是各个终端用户又有着不同的使用习惯:长期开着excel不关,不保存……组策略定时重启吧。解......
  • P1443 马的遍历
    马的遍历题目描述有一个\(n\timesm\)的棋盘,在某个点\((x,y)\)上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。输入格式输入只有一行四个整数,分别为\(n,m,x,y\)。输出格式一个\(n\timesm\)的矩阵,代表马到达某个点最少要走几步(不能到达则输出\(-......
  • xv6book阅读 chapter2
    一个操作系统至少应该满足三个需求:多路复用、隔离、交互。本章主要介绍如何组织操作系统来实现以上的三个需求,本文关注的是一种围绕单核进行设计的方法,这种设计是被许多uinx操作系统所使用的。Xv6运行在多核RISC-V微处理器上时,它的许多低级功能(例如,它的进程实现)是特定于RISC-V的......
  • [代码随想录] 第六天
    383.赎金信https://leetcode.cn/problems/ransom-note/description/思路:本题与242.有效的字母异位词几乎相同。将字母-'a',变成0-26的数字存放于数组中,再遍历数组对比次数。classSolution{publicbooleancanConstruct(StringransomNote,Stringmagazine){in......
  • 寒假生活指导07
    【问题说明】建立全国碳市场一体化管理平台是一个复杂过程,在当前全国碳市场中多数企业虽然能获知自身的数据,但是缺乏对碳核算相关知识,无法自行计算碳排放,需要委托第三方机构开具碳排放报告,其质量良莠不齐,且核算结果不准确,容易出现恶意造假。此外我国碳交易市场存在标准不统一,透明......
  • Git、Github和GitLab的区别及与SVN的比较
     https://www.cnblogs.com/21-forever/p/10949309.html 个人理解:SVN适合领导啊,大家一起在加班,看你进度什么的,git则不必如此,忙完传上来完活。一、含义:百度上这样介绍的:Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的......
  • playedu存储配置minio
    minio配置新建一个桶Buckets点击管理,Summary,AccessPolicy:复制代码{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{&quo......