今天搞一搞ES的分词,经过这两天的了解,ES就是个无关系型数据库,对于接触过有关系型数据库的我来说,就先这么理解吧,没问题。
如果没有分词这个硬性需求的要求,无关系型数据库可选的很多,所以啦,用ES就是用他的分词功能。
版本ES 8.2
语言 python
Elasticsearch之所以全文搜索很快,是因为采用了倒排索引,倒排索引的核心是分词。分词:就是把内容拆分为很多个词语,ES是把text格式的字段按照分词器进行分词并保存为索引的。
Elasticsearch分析器有几个概念:Analysis、Analyzer、Character filters、Tokenizer、Token filter。
Analysis(分析器)功能是把文本切分成词项(词项是倒排索引中的基本单位)。分析器的功能主要是通过分词器(Analyzer)来实现的。
Analyzer由三部分组成:字符过滤器(Character filters)、分词器(Tokenizer)和词元过滤器(Token filter)。每一个Analyzer有且只能有一个tokenizer。
Character filters:针对原始文本处理,例如去除html
Tokenizer:按照规则将文本切分为单词
Token Filter:将切分的单词进行加工,如单词小写、删除stopword、增加同