转小写 默认开启 true
.stopwords
停顿词过滤 默认none未开启 , Defaults to _none_
.stopwords_path
停顿词文件路径8.3 实验Pattern Analyzer 的实现 就是如下
PUT /pattern_example{"settings": {"analysis": {"tokenizer": {"split_on_non_word": {"type":"pattern","pattern":"\\W+"}},"analyzer": {"rebuilt_pattern": {"tokenizer": "split_on_non_word","filter": ["lowercase"]}}}}}
9. Language Analyzer提供了如下 这么多语言分词器 , 其中 english 也在其中
arabic
, armenian
, basque
, bengali
, bulgarian
, catalan
, czech
, dutch
, english
, finnish
, french
, galician
, german
, hindi
, hungarian
, indonesian
, irish
, italian
, latvian
, lithuanian
, norwegian
, portuguese
, romanian
, russian
, sorani
, spanish
, swedish
, turkish
.
GET _analyze{"analyzer": "english","text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."}[ 2, quick, brown, foxes, jumped, over, lazy, dog, bone ]
10. Customer Analyzer没啥好说的 就是当提供的 内置分词器不满足你的需求的时候 ,你可以结合 如下3部分
- Character Filters : 主要对原文本做处理, 例如 去除 html 标签
- Tokenizer : 按照规则 把文本切分为单词, 也就是分词
- Token Filters : 将切分后的单词 进行加工处理,小写,删除stopwords 停顿词,增加同义词 , 扩展一些
PUT my_index{"settings": {"analysis": {"analyzer": {"my_custom_analyzer": {"type": "custom","char_filter": ["emoticons"],"tokenizer": "punctuation","filter": ["lowercase","english_stop"]}},"tokenizer": {"punctuation": {"type": "pattern","pattern": "[ .,!?]"}},"char_filter": {"emoticons": {"type": "mapping","mappings": [":) => _happy_",":( => _sad_"]}},"filter": {"english_stop": {"type": "stop","stopwords": "_english_"}}}}}POST my_index/_analyze{"analyzer": "my_custom_analyzer","text":"I'm a :) person, and you?"}[ i'm, _happy_, person, you ]
总结本篇主要介绍了 Elasticsearch 中 的一些 内置的 Analyzer分词器, 这些内置分词器可能不会常用,但是如果你能好好梳理一下这些内置 分词器,一定会对你理解Analyzer 有很大的帮助, 可以帮助你理解 Character Filters , Tokenizer 和 Token Filters 的用处.有机会再聊聊 一些中文分词器 如 IKAnalyzer, ICU Analyzer ,Thulac 等等.. 毕竟开发中 中文分词器用到更多些
欢迎大家访问 个人博客Johnny小屋欢迎关注个人公众号

文章插图
【Elasticsearch Analyzer 内置分词器】
经验总结扩展阅读
- ElasticSearch这些坑记得避开
- 有用的内置Node.js APIs
- 京东云开发者|ElasticSearch降本增效常见的方法
- 记录在linux上单机elasticsearch8和kibana8
- AgileBoot - 如何集成内置数据库H2和内置Redis
- Elasticsearch rest-high-level-client 基本操作
- SpringBoot内置工具类,告别瞎写工具类了
- Hyperf使用ElasticSearch记录
- Mysql通过Canal同步Elasticsearch
- 4 Java注解:一个真实的Elasticsearch案例