网站制作 徐州,管理者必备的三大能力,php做音乐网站,wordpress怎么上传插件基本概念
分词器官方称之为文本分析器#xff0c;顾名思义#xff0c;是对文本进行分析处理的一种手段#xff0c;基本处理逻辑为按照预先制定的分词规则#xff0c;把原始文档分割成若干更小粒度的词项#xff0c;粒度大小取决于分词器规则。 分词器发生的时期
1、分词…基本概念
分词器官方称之为文本分析器顾名思义是对文本进行分析处理的一种手段基本处理逻辑为按照预先制定的分词规则把原始文档分割成若干更小粒度的词项粒度大小取决于分词器规则。 分词器发生的时期
1、分词器的处理过程发生在索引文档创建时期
2、搜索时期对搜索词进行分词
分词器的组成
切词器Tokenizer用于定义切词分词逻辑词项过滤器Token Filter用于对分词之后的单个词项的处理逻辑字符过滤器Character Filter用于处理单个字符
注意分词器不会对源数据产生影响分词只是对倒排索引以及搜索词的行为
切词器Tokenizer
tokenizer 是分词器的核心组成部分之一其主要作用是分词或称之为切词。主要用来对原始文本进行细粒度拆分。拆分之后的每一个部分称之为一个 Term或称之为一个词项。可以把切词器理解为预定义的切词规则。官方内置了很多种切词器默认的切词器为 standard。
词项过滤器Token Filter
词项过滤器用来处理切词完成之后的词项例如把大小写转换删除停用词或同义词处理等。官方同样预置了很多词项过滤器基本可以满足日常开发的需要。当然也是支持第三方也自行开发的。
比如转为大写 转为小写 #转为大写
GET _analyze
{tokenizer: standard, filter: [uppercase],text: [www elastic co guide]
}#转为小写
GET _analyze
{tokenizer: standard,filter: [lowercase],text: [WWW ELASTIC CO GUIDE]
}
停用词
在切词完成之后会被干掉词项即停用词。停用词可以自定义
在分词器插件的配置文件中可以看到停用词的定义
比如 ik 分词器定义的停用词如下 演示
可以看到 are 被停用了 # 停用词
GET _analyze
{tokenizer: standard,filter: [stop], text: [what are you doing]
}
也可以自定义停用词 ### 自定义 filter
PUT test_token_filter_stop
{settings: {analysis: {filter: {my_filter: {type: stop,stopwords: [www],ignore_case: true}}}}
}
GET test_token_filter_stop/_analyze
{tokenizer: standard, filter: [my_filter], text: [What www WWW are you doing]
}
同义词
同义词定义规则
a, b, c d这种方式a、b、c 会被 d 代替。a, b, c, d这种方式下a、b、c、d 是等价的。 #同义词
PUT test_token_filter_synonym
{settings: {analysis: {filter: {my_synonym: {type: synonym,synonyms: [good, nice excellent]}}}}
}GET test_token_filter_synonym/_analyze
{tokenizer: standard, filter: [my_synonym], text: [good]
}字符过滤器Character Filter
分词之前的预处理过滤无用字符。
html 标签过滤器
typehtml_strip 表示过滤 html 标签
escaped_tags 表示需要保留的标签
下面示例可以看到 p 标签被过滤而 a 标签保留 #字符过滤器
PUT test_html_strip_filter
{settings: {analysis: {char_filter: {my_char_filter: {type: html_strip,escaped_tags: [a]}}}}
}GET test_html_strip_filter/_analyze
{tokenizer: standard,char_filter: [my_char_filter],text: [pIapos;m so ahappy/a!/p]
}
字符映射过滤器Mapping Character Filter
通过定义映替换为规则把特定字符替换为指定字符
type: mapping 表示字符映射
mappings 里面配置需要映射的字符关系 PUT test_html_strip_filter
{settings: {analysis: {char_filter: {my_char_filter: {type: mapping, mappings: [ 大 *,可 *,爱 *]}}}}
}
GET test_html_strip_filter/_analyze
{char_filter: [my_char_filter],text: 你就是一个大可爱
}
正则替换过滤器Pattern Replace Character Filter
type: pattern_replace 表示正则替换 #正则替换
PUT text_pattern_replace_filter
{settings: {analysis: {char_filter: {my_char_filter: {type: pattern_replace, pattern: (\d{3})\d{4}(\d{4}), replacement: $1****$2}}}}
}
GET text_pattern_replace_filter/_analyze
{char_filter: [my_char_filter],text: 您的手机号是18868686688
}
感谢观看感兴趣的小伙伴可以关注收藏持续更新中