当前位置: 首页 > news >正文

Elasticsearch之ik中文分词篇

Elasticsearch之ik中文分词篇

  • ik分词器插件
    • ik分词器安装
    • ik分词模式
    • es ik分词测试

ik分词器插件

es在7.3版本已经支持中文分词,由于中文分词只能支持到单个字进行分词,不够灵活与适配我们平常使用习惯,所以有很多对应中文分词出现,最近使用的是ik分词器,就说说它吧。

ik分词器安装

安装可以百度下有很多教程,需要注意的是ik分词器的版本要跟es版本对应上,避免出现不必要的兼容问题。

ik分词模式

ik_max_word: 将文本拆分成最细粒度的词语或者字

GET /test_analysis/_analyze
{"text": "是否分词","analyzer": "ik_max_word"
}

结果

{"tokens" : [{"token" : "是否","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "是","start_offset" : 0,"end_offset" : 1,"type" : "CN_WORD","position" : 1},{"token" : "否","start_offset" : 1,"end_offset" : 2,"type" : "CN_WORD","position" : 2},{"token" : "分词","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 3},{"token" : "分","start_offset" : 2,"end_offset" : 3,"type" : "CN_WORD","position" : 4},{"token" : "词","start_offset" : 3,"end_offset" : 4,"type" : "CN_WORD","position" : 5}]
}

ik_smart: 将文本拆分成最粗粒的词语

GET /test_analysis/_analyze
{"text": "是否分词","analyzer": "ik_smart"
}

结果

{"tokens" : [{"token" : "是否","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "分词","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 1}]
}

一般都用ik_max_word

es ik分词测试

创建索引

PUT /test_analysis
{"mappings": {"properties": {"message": {"type": "text","analyzer": "ik_max_word"},"id": {"type": "keyword"}}}
}

添加数据

POST /test_analysis/_bulk
{"index":{}}
{"id":"111", "message":"我是一个小可爱"}
{"index":{}}
{"id":"222", "message":"只是为了测试一下结果是否分词"}
{"index":{}}
{"id":"333", "message":"测试一下是否进行了ik分词"}
{"index":{}}
{"id":"444", "message":"搞一些假的数据吧"}
{"index":{}}
{"id":"555", "message":"实在不知道再写一些什么了"}
{"index":{}}
{"id":"666", "message":"就这样吧"}

查询

GET /test_analysis/_search
{"query": {"bool": {"must": [{"match": {"message": "是否分词"}}]}}
}

查询分词结果

{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 3,"relation" : "eq"},"max_score" : 5.104265,"hits" : [{"_index" : "test_analysis","_type" : "_doc","_id" : "MDXEe4wBS_Neyb68FBdy","_score" : 5.104265,"_source" : {"id" : "333","message" : "测试一下是否进行了ik分词"}},{"_index" : "test_analysis","_type" : "_doc","_id" : "LzXEe4wBS_Neyb68FBdy","_score" : 5.0611815,"_source" : {"id" : "222","message" : "只是为了测试一下结果是否分词"}},{"_index" : "test_analysis","_type" : "_doc","_id" : "LjXEe4wBS_Neyb68FBdy","_score" : 0.728194,"_source" : {"id" : "111","message" : "我是一个小可爱"}}]}
}
http://www.lryc.cn/news/263820.html

相关文章:

  • 2023_Spark_实验三十:测试Flume到Kafka
  • urllib2 HTTP头部注入
  • 在 WebRTC 中,Offer/Answer 模型是协商 WebRTC 连接参数的关键部分
  • 数据结构:图解手撕B-树以及B树的优化和索引
  • useConsole的封装,vue,react,htmlscript标签,通用
  • Azure Machine Learning - 提示工程高级技术
  • 七款创意项目管理软件解决方案推荐:高效项目管理与团队协作工具
  • 如何在公网环境下使用Potplayer访问本地群晖webdav中的影视资源
  • 数据可视化Seaborn
  • AWS S3相关配置笔记
  • linux:linux的小动物们(ubuntu)
  • 每日一题(LeetCode)----栈和队列--逆波兰表达式求值
  • 2023年第四届 “赣网杯” 网络安全大赛 gwb-web3 Write UP【PHP 临时函数名特性 + 绕过trim函数】
  • 软件设计师——软件工程(一)
  • 阿里云|人工智能(AI)技术解决方案
  • Axure中继器的使用
  • 猫罐头哪个牌子好性价比高?五大性价比高的品牌推荐
  • 宣布推出 ML.NET 3.0
  • 常见的排序算法---快速排序算法
  • hive企业级调优策略之分组聚合优化
  • 英码科技受邀参加2023计算产业生态大会,分享智慧轨道交通创新解决方案
  • 【openssl】Linux升级openssl-1.0.1到1.1.1
  • 美国联邦机动车安全标准-FMVSS
  • 龙迅LT6211B,HDMI1.4转LVDS,应用于AR/VR市场
  • 解决docker拉取镜像错误 missing signature key 问题
  • 倒计数器:CountDownLatch
  • vue内容渲染
  • Kafka为什么能高效读写数据
  • Flink系列之:Table API Connectors之Debezium
  • 【Python基础】文件读写