《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(10) https://developer.aliyun.com/article/1229763
西班牙语分词器
Elasticsearch 内置语言的分词器对西班牙语处理使用 spanish,处理过程中一次对单词进行小写转换,剔除停用次,提取词干的操作。
POST _analyze { "analyzer": "spanish", "text": "Este es un texto de prueba." }
内部实现
l Tokenizer
l Standard Tokenizer
l Token filters
l Lowercase token filter
l Stop token filter
l Keyword marker token filter
l Stemmer token filter
Pattern analyzer
使用正则表达式匹配分隔符(不是文本内容)对文本进行切分,默认使用 \W+ 非数字字母下划线的字符作为分隔符进行切分。
GET _analyze { "analyzer": "pattern", "text":"Heya, we’re Elastic" }
内部实现
l Tokenizer
l Pattern Tokenizer
l Token filters
l Lower Case Token Filter
l Stop Token Filter(默认禁用)
配置参数
pattern 匹配分隔符的正则表达式,默认是 \W+。
flags Java 中正则表达式匹配标记属性,多个标记属性使用 | 竖线分割。
lowercase 是否转小写操作,默认为 true 。
stopwords 配置停用词,可以根据内置语言设置如 _english_ 或者定义停用词数组,默认不启用 _none_。
stopwords_path 配置停用词的文件路径,需要放在 Elasticsearch 目录中的 config 目录中。
PUT /pattern_example { "settings": { "analysis": { "analyzer": { "pattern_override": { "type": "pattern", "pattern": """@""", "lowercase": true } } } } } GET pattern_example/_analyze { "analyzer": "pattern_override", "text": ["Info@elastic.co"] }
分词器将下划线和非数字字母字符设置为分隔符,切分后的单词转换小写操作,返回下面的单词数组:
[ info, elastic.co ]
Fingerprint analyzer
指纹分词器通过指纹算法将输入的文本内容处理后合并为一个字符串存储。算法中按照以下顺序对文本进行以下七步的操作:
1、两端去空格。
2、将所有字符进行小写处理。
3、删除所有标点符号和控制字符。
4、西方文本字符 ASCII 编码化。
5、使用空格切分文本。
6、按照字母进行排序和去重操作,如果配置了停用词,停用词将会剔除。
7、将单词使用连接符拼接到一起,默认连接符为空格。
GET _analyze { "analyzer": "fingerprint", "text":"Twinkle,twinkle,little star" }
通过指纹分词器处理后,返回一个字符串 token:
{ "tokens" : [ { "token" : "little star twinkle", "start_offset" : 0, "end_offset" : 27, "type" : "fingerprint", "position" : 0 } ] }
内部实现
l Tokenizer
l Standard Tokenizer
l Token filters
l Lower Case Token Filter
l ASCII folding
l Stop Token Filter(默认禁用)
l Fingerprint
配置参数
separator 拼接 token 使用的字符,默认空格。
max_output_size 拼接 token 最大长度,超过长度将会截断,默认255。
stopwords 配置停用词,可以根据内置语言设置如 _english_ 或者定义停用词数组,默认不启用 _none_。
stopwords_path 配置停用词的文件路径,需要放在 Elasticsearch 目录中的 config 目录中。
PUT fingerprint_example { "settings": { "analysis": { "analyzer": { "fp_override": { "type": "fingerprint", "separator":"|" } } } } } GET fingerprint_example/_analyze { "analyzer": "fp_override", "text":"Twinkle,twinkle,little star" }
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(12) https://developer.aliyun.com/article/1229761