Elasticsrarch 提供了8中内置分词器,它们可以无需任何配置即可使用。每一个分词器都由3部分组件组成:Character Filters、Tokenizer和Token Filters,这3个组件就像一个流水线一样对输入的文本进行分词处理。
- Character Filters: 对输入的文本进行第一次处理,例如去除文本中html标签符号
- Tokenizer:对上一步处理后的结果按照规则进行单词拆分。
- Token Filters:将切分后的单词进行二次加工,例如转小写、删除
stop words
、增加同义词等操作
例如,使用standard
分词器,对文本“<h2>Hi</h2>,My name is QiQi.
”处理过程为:
- Character fileters将
<
和>
去除,结果为:h2 Hi h2,My name is QiQi.
(不同的character filter处理结果可能不同) - Tokenizer 继续对上一步的结果进行处理,去掉符号,结果为
h2 Hi h2 My name is QiQi
- Token Filters 对分词后的单词进一步处理,将单词转为小写,结果
h2 hi h2 my name is qiqi
- 最终结果就是
h2 hi h2 my name is qiqi