分析器的组成
编辑分析器的组成
编辑一个分析器(无论是内置的还是自定义的)只是一个包含三个较低级别构建块的包:字符过滤器、分词器和词元过滤器。
内置的 分析器 将这些构建块预先打包成适合不同语言和文本类型的分析器。 Elasticsearch 还公开了各个构建块,以便可以将它们组合起来定义新的 custom
分析器。
字符过滤器
编辑字符过滤器接收原始文本作为字符流,并且可以通过添加、删除或更改字符来转换流。例如,可以使用字符过滤器将印度-阿拉伯数字 (٠١٢٣٤٥٦٧٨٩) 转换为其阿拉伯-拉丁等效形式 (0123456789),或者从流中删除像 <b>
这样的 HTML 元素。
一个分析器可以有 零个或多个 字符过滤器,这些过滤器按顺序应用。
分词器
编辑分词器接收字符流,将其分解为单独的词元(通常是单个单词),并输出词元流。例如,whitespace
分词器会在遇到任何空格时将文本分解为词元。它会将文本 "Quick brown fox!"
转换为词元 [Quick, brown, fox!]
。
分词器还负责记录每个词元的顺序或位置以及词元所表示的原始单词的起始和结束字符偏移量。
一个分析器必须有 恰好一个 分词器。