ElasticSearch——分词
前言:
最近在使用elasticSearch中发现有些数据查不出来,于是研究了一下,发现是分词导致的,现梳理并总结一下。
ElasticSearch 5.0以后,string类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型: text用于全文搜索的,而keyword用于关键词搜索。
ElasticSearch字符串将默认被同时映射成text和keyword类型,将会自动创建下面的动态映射(dynamic mappings):
"relateId": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
这就是造成部分字段还会自动生成一个与之对应的“.keyword”字段的原因。
存储查询示例:
relateId存储:20191101R672499460503 1个值
relateId.keyword存储:20191101 R 672499460503 3个值
这时用relateId进行精确查询,查不出数据,因为已经被分成3个词了:

用relateId.keyword进行精确查询则可以查出数据来:

两者比较:
Text:默认会分词,然后进行索引,支持模糊、精确查询,不支持聚合
keyword:不进行分词,直接索引,支持模糊、精确查询,支持聚合
进阶处理:
注意:Text默认会分词,这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间。这时可以设置mapping为not analyzied,让它不分词。
"relateId": {
"type": "text",
"index": "not_analyzed"
}
如果要指定分词则用下面的方式:
"relateId": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer":"ik_smart",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above":
}
}
}
ElasticSearch——分词的更多相关文章
- Elasticsearch——分词器对String的作用
更多内容参考:Elasticsearch学习总结 关于String类型--分词与不分词 在Elasticsearch中String是最基本的数据类型,如果不是数字或者标准格式的日期等这种很明显的类型, ...
- elasticsearch分词插件的安装
IK简介 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本.最初,它是以开源项目Luen ...
- elasticsearch分词器Jcseg安装手册
Jcseg是什么? Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言 ...
- Elasticsearch 分词器
无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizers , token filters. 内 ...
- elasticsearch分词器ik
1. 下载和es配套的版本 git clone https://github.com/medcl/elasticsearch-analysis-ik 2. 编译 cd elasticsearch-an ...
- Elasticsearch分词导致的查找错误
这周在做视频搜索的过程中遇到一个问题,就是用下面的查询表达式去Elasticsearch检索,检索不到想要的结果.查询语句如下: 而查询的字段的值为: "mergeVideoName&quo ...
- ElasticSearch分词器
什么是分词器? 分词器,是将用户输入的一段文本,分析成符合逻辑的一种工具.到目前为止呢,分词器没有办法做到完全的符合人们的要求.和我们有关的分词器有英文的和中文的.英文的分词器过程:输入文本-关键词切 ...
- 掌握 analyze API,一举搞定 Elasticsearch 分词难题
初次接触 Elasticsearch 的同学经常会遇到分词相关的难题,比如如下这些场景: 为什么明明有包含搜索关键词的文档,但结果里面就没有相关文档呢? 我存进去的文档到底被分成哪些词(term)了? ...
- ElasticSearch 分词器,了解一下
这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的. 首先来说下什么是 Analysis: 什么是 ...
随机推荐
- final 在 java 中有什么作用?(未完成)
final 在 java 中有什么作用?(未完成)
- Map的使用及遍历方式
Java中Map遍历的四种方式 如果同时需要key和value推荐使用entrySet(第一种): 如果只是获取key,或者value,推荐使用keySet或者values方式(第二种): 如果需要在 ...
- 2.PAT 1001 害死人不偿命的(3 n + 1 )猜想
题目: 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 ...
- CF700E Cool Slogans——SAM+线段树合并
RemoteJudge 又是一道用线段树合并来维护\(endpos\)的题,还有一道见我的博客CF666E 思路 先把\(SAM\)建出来 如果两个相邻的串\(s_i\)和\(s_{i+1}\)要满足 ...
- oracle之约束-主键、非空、唯一、check、外键、默认
--首先添加主键约束alter table studentadd constraint PK_student_sno primary key(sno) --删除约束alter table studen ...
- python-platform模块:平台相关属性
import platform x=platform.machine() #返回平台架构 #AMD64 x=platform.node() #网络名称(主机名) #DESKTOP-KIK668C x= ...
- [Nx] Note for learning Nx
Proxy configuration: When we have already fews applications running in the workspace, and we want to ...
- Ubuntu操作及Linux基础知识
part 1: Ubuntu操作基础 1.调整字体的大小 调大:crtl+shift+“+” 调小:crtl+“-” 2.不要把虚拟机全屏的时候截屏,要不然会认为是Linux系统截屏而非Window ...
- Linux创建删除文件和文件夹
要想删除和创建,需要有root权限 [xwg@bogon ~]$ su root密码:[root@bogon xwg]# cd /home/a 切换到目录a[root@bogon a]# t ...
- 前端导出pdf
html2canvas文档地址 http://html2canvas.hertzen.com/configuration 方式一:使用html2canvas和jspdf插件实现 该方式是通过html2 ...