首页 > 其他分享 >ES笔记:IK分词器

ES笔记:IK分词器

时间:2024-02-04 23:55:05浏览次数:29  
标签:IK 切分 ik 分词器 offset 分词 ES

ES中文档按照分词进行检索,对于中文,ES默认按照单个字进行分词,非常低效,可以使用专门的中文分词器,如IK分词器。

下载: https://github.com/medcl/elasticsearch-analysis-ik/releases

安装: 在ES的plugins目录下新建一个目录,将下载的IK分词压缩包解压到此目录即可,然后重启ES该分词器便会生效。

IK分词器提供了两种分词算法:ik_smart(最少切分)和ik_max_word(细粒度切分)。这两种分词算法都会根据默认的“词典”进行切分,所有的“词典”配置文件都在config目录下的dic文件中。

如果想要添加自定义的词典,可以在config目录下新建自己的dic文件,如 my.dic ,然后将该文件配置在 IKAnalyzer.cfg.xml 中的ext_dict节点,如 <entry key="ext_dict">my.dic</entry> ,然后重启ES即可。

ik_smart示例:切分结果只是切分了一次

GET _analyze
{
  "analyzer": "ik_smart",  # 指定分析器,默认的分析器是内置的standard分析器
  "text": "开发工具"
}

分词结果:

{
  "tokens" : [
    {
      "token" : "开发工具",
      "start_offset" : 0,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 0
    }
  ]
}

ik_max_word示例:切分出更多结果

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "开发工具"
}

分词结果

{
  "tokens" : [
    {
      "token" : "开发工具",
      "start_offset" : 0,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "开发",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "工具",
      "start_offset" : 2,
      "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

标签:IK,切分,ik,分词器,offset,分词,ES
From: https://www.cnblogs.com/guyuyun/p/18005482

相关文章

  • R语言Kmeans聚类、PAM、DBSCAN、AGNES、FDP、PSO粒子群聚类分析iris数据结果可视化比
    全文链接:http://tecdat.cn/?p=32007原文出处:拓端数据部落公众号本文以iris数据和模拟数据为例,帮助客户了比较R语言Kmeans聚类算法、PAM聚类算法、DBSCAN聚类算法、AGNES聚类算法、FDP聚类算法、PSO粒子群聚类算法在iris数据结果可视化分析中的优缺点。结果:聚类算法的聚类结......
  • Codeforces Round 917 (Div. 2)
    https://codeforces.com/contest/1917A.LeastProduct*800给定整数数组,可以把数组中的数\(a_i\)改为\(0\sima_i\)中的任意整数,最小化所有数的乘积,在此基础上使操作次数最少讨论一下负数的个数和\(0\)的个数#include<bits/stdc++.h>usingnamespacestd;usingll......
  • Quest: Patrolling Westfall
    referObjectivesBring8GnollPawstoCaptainDanuvinonSentinelHill.DescriptionStormwindhasabandonedus.AfoulwindofdepravityrustlesthroughtheplainsofWestfall.ThiswasmyhomelandandIwillnotturnmybackonthecitizenswhochoose......
  • 24/02/04 CF567E President and Roads
    题目描述Berlandhas$n$cities,thecapitalislocatedincity$s$,andthehistorichometownofthePresidentisincity$t$($s≠t$).Thecitiesareconnectedbyone-wayroads,thetraveltimeforeachoftheroadisapositiveinteger.Once......
  • 无涯教程-setMinutes()函数
    JavaScriptdatesetMinutes()方法设置Date对象中的分钟(0~59)。setMinutes()-语法Date.setMinutes(minutesValue[,secondsValue[,msValue]])minutesValue  - 0到59之间的整数,代表分钟。secondsValue  - 0到59之间的整数,代表秒。如果指定secon......
  • CF235C Cyclical Quest
    更好的阅读体验CF235CCyclicalQuestSAM做法:对于主串建SAM,然后parenttree上DP出\(f_i\)表示节点\(i\)后缀等价类的出现次数。询问先用KMP求最小循环元\(m\),然后接下来需要把\([1,n],[2,n]\dots[m-1,n+m-1]\)扔进SAM里跑。暴力显然过不去,但是跑完一次可以删......
  • resty库基本使用
    在golang中对接接口文档假如你作为客户端对接别人的接口文档使用resty库构建multipart/form-data的请求使用restyclient:=resty.New()client.R().SetFile(key,filePath)SetFormData(map[string]string{"fileType":fileType,"......
  • pinterest插件集中移动图片到指定文件夹
    importosimportshutildefis_image_file(filename):"""检查文件是否为图片文件。"""image_extensions=['.jpg','.jpeg','.png','.gif','.bmp','.tiff']returnany......
  • 文件上传错误:Processing of multipart/form-data request failed. Stream ended unexp
    问题描述Processingofmultipart/form-datarequestfailed.Streamendedunexpectedly不通过网关,直接在本地debug是可以上传成功的,线上环境通过网关上传则会导致此错误,可能是网关修改了请求内容。解决方式前端将文件转换为base64字符串,服务端接收到再转换为字节数组......
  • 猜数游戏[USACO2008] Haybale Guessing G
    $Haybale\Guessing\G$(猜数游戏)解题报告\(Diffculty:\)\(\color{purple}省选/NOI-\)传送门1:(HZOIER)传送门2:(vjudge)传送门3:(luogu)题面为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力。游戏开始前,一头指定的奶牛会在牛棚后......