- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本文首发于公众号:Hunter后端 原文链接: es笔记四之中文分词插件安装与使用 。
前面我们介绍的操作及演示都是基于英语单词的分词,但我们大部分使用的肯定都是中文,所以如果需要使用分词的操作肯定也是需要使用中分分词.
这里我们介绍一下如何安装中文分词插件.
在介绍安装之前,我们可以先来测试一下没有中文分词的分词效果,我们先来插入一条数据:
PUT /exam/_doc/16
{
"name" : "张三丰",
"address": "一个苹果"
}
如果是中文分词,我们可以想到 '一个苹果' 应该会被分为 '一个' 和 '苹果' 这两个词,但是默认的分词是无法这样分词的,我们可以尝试搜索一下:
GET /exam/_search
{
"query": {
"term": {
"address": "一个"
}
}
}
可以发现是无法搜索到结果的.
我们可以查看一下这条数据的 address 字段被分词的结果:
GET /exam/_doc/16/_termvectors?fields=address
其中,_doc 后面的 16 是我们要查询的数据的 id,fields 后面跟着的要查看的分词结果的字段名.
可以看到 一个苹果 这个字符串,被挨个分成了四个.
然后我们来安装一下中文分词的插件.
在 elasticsearch 安装的目录下,执行下面的语句:
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.0/elasticsearch-analysis-ik-7.6.0.zip
这里我们安装的是 7.6.0 版本的 es,所以安装对应的分词插件.
然后我们重新建立这个 index,为 address 字段加上指定的分词插件:
挨个执行下面的命令:
DELETE /exam/
PUT /exam
PUT /exam/_mapping
{
"properties": {
"address": {
"type": "text",
"analyzer": "ik_max_word",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "keyword"
}
}
}
这里,和第一次创建 mapping 的时候比,多了一行 analyzer 的定义.
然后我们再次重复上面的插入和查询操作:
PUT /exam/_doc/16
{
"name" : "张三丰",
"address": "一个苹果"
}
GET /exam/_search
{
"query": {
"term": {
"address": "一个"
}
}
}
可以看到,这次我们搜索 一个,就可以查询到数据了.
然后我们看下这条数据的 address 的分词结果:
GET /exam/_doc/16/_termvectors?fields=address
可以看到,这次返回的结果除了单独的 '一' 和 '个' 之外,还有被分成整体的 '一个' 和 '苹果'.
这里额外介绍一下如何查看字符串的分词.
如果我们有一个字符串,想要知道它会被如何分词,可以直接使用下面的命令:
POST /_analyze
{
"analyzer": "ik_smart",
"text": "一个苹果"
}
其中,analyzer 是指定的分词的插件,如果不指定就会使用默认的分词功能.
中文分词插件的github 地址如下: https://github.com/medcl/elasticsearch-analysis-ik 。
如果想获取更多后端相关文章,可扫码关注阅读:
最后此篇关于es笔记四之中文分词插件安装与使用的文章就讲到这里了,如果你想了解更多关于es笔记四之中文分词插件安装与使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
OkHttp的作用 OkHttp is an HTTP client。 如果是HTTP的方式想得到数据,就需要我们在页面上输入网址,如果网址没有问题,就有可能返回对应的String字符串,如果这个地址
Record 一个重要的字符串算法,这是第三次复习。 通过总结我认为之所以某个算法总是忘记,是因为大脑始终没有认可这种算法的逻辑(也就是脑回路)。 本篇主要讲解从KMP的应用场景,
SQL 注入基础 【若本文有问题请指正】 有回显 回显正常 基本步骤 1. 判断注入类型 数字型 or 字符型 数字型【示例】:
标签: #Prompt #LLM 创建时间:2023-04-28 17:05:45 链接: 课程(含JupyterNotebook) , 中文版 讲师: An
Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于
VulnStack-红日靶机七 概述 在 VulnStack7 是由 5 台目标机器组成的三层网络环境,分别为 DMZ 区、第二层网络、第三层网络。涉及到的知识点也是有很多,redis未授权的利用
红日靶机(一)笔记 概述 域渗透靶机,可以练习对域渗透的一些知识,主要还是要熟悉 powershell 语法,powershell 往往比 cmd 的命令行更加强大,而很多渗透开源的脚本都是 po
八大绩效域详细解析 18.1 干系人绩效域 跟干系人所有相关的活动. 一、预期目标 ①与干系人建立高效的工作关系 ②干系人认同项目目标 ③支持项目的干系人提高
18.3 开发方法和生命周期绩效域 跟开发方法,项目交付节奏和生命周期相关的活动和职能. 一、预期目标: ①开发方法与项目可交付物相符合; ②将项目交付与干系人价值紧密
18.7 度量绩效域 度量绩效域涉及评估项目绩效和采取应对措施相关的活动和职能度量是评估项目绩效,并采取适当的应对措施,以保持最佳项目绩效的过程。 一、 预期目标: ①对项目状况
pygraphviz 安装,windows系统: 正确的安装姿势: Prebuilt-Binaries/PyGraphviz at master · CristiFati/Prebuilt-Binar
今天给大家介绍IDEA开发工具如何配置devtools热加载工具。 1、devtools原理介绍 spring-boot-devtools是spring为开发者提供的热加载
一 什么是正则表达式 // 正则表达式(regular expression)是一个描述字符模式的对象; // JS定义RegExp类表示正则表达式; // String和RegExp都定义了使用
目前是2022-04-25 23:48:03,此篇博文分享到互联网上估计是1-2个月后的事了,此时的OpenCV3最新版是3.4.16 这里前提是gcc,g++,cmake都需要安装好。 没安装好的,
一、概述 1、Flink 是什么 Apache Flink is a framework and distributed processing engine for stateful comput
一、window 概述 Flink 通常处理流式、无限数据集的计算引擎,窗口是一种把无限流式数据集切割成有限的数据集进行计算。window窗口在Flink中极其重要。 二、window 类型 w
一、触发器(Trigger) 1.1、案例一 利用global window + trigger 计算单词出现三次统计一次(有点像CountWindow) 某台虚拟机或者mac 终端输入:nc -
一、时间语义 在Flink 中涉及到三个重要时间概念:EventTime、IngestionTime、ProcessingTime。 1.1、EventTime EventTime 表示日志事
一、概述 以wordcount为例,为什么每次输入数据,flink都能统计每个单词的总数呢?我们都没有显示保存每个单词的状态值,但是每来一条数据,都能计算单词的总数。事实上,flink在底层维护了每
一、概述 checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状
我是一名优秀的程序员,十分优秀!