前言
qbit 使用的 Elasticsearch 版本为 7.x
推荐学习阮一鸣《Elasticsearch 核心技术与实战》
- normalizer 之于
keyword
,相当于analyzer
之于text
Analyzer 组成部分
分析器(analyzer)由三部分组成:字符过滤器(CharacterFilters)、分词器(Tokenizer)和词元过滤器(TokenFilters)。
analyzer / search_analyzer
- 默认情况下,建索引(index)和搜索(search)都用同一个分析器(analyzer)
- 在指定 search_analyzer 时,搜索用 search_analyzer 分析器
Analyzer 安装方法
查看已安装哪些插件
# cmd 安装后可见 ./bin/elasticsearch-plugin list # url 安装、重启后可见 http://10.10.10.10:9200/_cat/plugins # kibana GET /_cat/plugins
安装内置 Analyzer(以 ICU 为例)
./bin/elasticsearch-plugin install analysis-icu
安装 Github 上的 Analyzer(以 IK 为例)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
安装本地的 zip 包
# Linux ./bin/elasticsearch-plugin install file:///usr/share/es/download/plugin/elasticsearch-analysis-ik-7.4.2.zip # Windows ./bin/elasticsearch-plugin install file:///c:/path/to/elasticsearch-analysis-ik-7.4.2.zip
免确认
-b --batch
Analyzer 测试方法
内置分词器
POST _analyze
{
"analyzer": "simple",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
自定义分词器
GET /_analyze
{
"char_filter": ["html_strip"],
"tokenizer": "hanlp",
"filter": [ "word_delimiter_graph", "lowercase", "stop", "stemmer"],
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
查看某个索引某个字段的分词
GET my_index/_termvectors/123?fields=title
内置 Analyzer 与 官方插件
英文 Analyzer
Standard Analyzer
Simple Analyzer
- 内置分析器 Simple Analyzer
中文 Analyzer
ICU
SmartCN
HanLP
- 在线测试: http://hanlp.com/
- GitHub: https://github.com/hankcs/HanLP
- HanLP Elasticsearch 插件: https://github.com/KennFalcon/elasticsearch-analysis-hanlp
IK
- IK Elasticsearch 插件: https://github.com/medcl/elasticsearch-analysis-ik
Pinyin
ansj
- ansj Elasticsearch 插件: https://github.com/NLPchina/elasticsearch-analysis-ansj
jieba
- jieba Elasticsearch 插件: https://github.com/sing1ee/elasticsearch-jieba-plugin
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。