01.mapping映射
- 前面已经安装了ik中文分词器,这里就不介绍怎么安装了
- ik_max_word: 会将文本做最细粒度的拆分
- ik_smart: 会做最粗粒度的拆分
1.1 映射是什么
- 映射:指定字段类型,将时间域视为时间,数字域视为数字,字符串域视为全文或精确值字符串
- Elasticsearch 支持如下简单域类型:
- 字符串: text string(高版本废弃)
- 整数 : byte, short, integer, long
- 浮点数: float, double
- 布尔型: boolean
- 日期: date
1.2 设置mapping
1 | # 查看映射关系 |
1.3 添加和查询数据
1 | # 查询worker1中所有数据 |
02.分析器
2.1 分析器类型
2.1.1 三方中文分词器
- ik_max_word:会做细粒度拆分
- ik_smart:会做最粗粒度的拆分
2.2 自带分词器
- 标准分析器(standard):标准分析器是Elasticsearch默认使用的分析器。
- 简单分析器(simple):简单分析器在任何不是字母的地方分隔文本,将词条小写。
空格分析器
(whitespace):空格分析器在空格的地方划分文本。语言分析器
(english):它们可以考虑指定语言的特点- 例如, 英语 分析器附带了一组英语无用词(常用单词,例如 and 或者 the ,它们对相关性没有多少影响),它们会被删除。
- 由于理解英语语法的规则,这个分词器可以提取英语单词的词干 。
2.2 在mapping中指定分析
1 | # 查看映射 |
2.3 添加数据
1 | # 查询所有数据 |
2.4 whitespace空格分析器
1 | # 查看刚刚设置的mapping映射 |
2.5 语言分析器(english)
1 | # 因为 note字段设置的是 "english" 语音分析器,所以通过 ?q=note:xiao 可以搜索到 xiao-nai-qiang |
2.6 ik_max_word中文分词
1 | # ik_max_word中文分词,可以通过 ?q=desc:肖乃强 查询到 "肖乃强是谁?" |
__END__