英国网站域名,广告互联网推广,学院宣传网站建设简介,如何做一个自己的电商平台ES分词器种类
常见的分词器#xff0c;如Standard分词器、Simple分词器、Whitespace分词器、IK分词等#xff0c;还支持自定义分词器(比如一些小国家的语言需要自定义分词器)ES默认就是Standard分词器
分词器在分词时的过程
标记化#xff1a;分词器第一步是将文本拆分成…ES分词器种类
常见的分词器如Standard分词器、Simple分词器、Whitespace分词器、IK分词等还支持自定义分词器(比如一些小国家的语言需要自定义分词器)ES默认就是Standard分词器
分词器在分词时的过程
标记化分词器第一步是将文本拆分成单个标记(tokens), 就是单个的单词或中文词组这个标记可以是单词数组特殊字符中文词语等。 此时会包含一些分隔符标点停用词等并非最终形态的分词。过滤对第一步分出来的所有标记进行过滤操作比如大小写转换去除停用词去掉分隔符标点等操作形成最终形态的分词集倒排索引分词完成后ES会创建倒排索引来存储这些分词 倒排索引是一种数据结构通过倒排索引把分词和文档document(即原始文本)建立起映射关系当搜索某个分词的时候就会将映射到的文档进行返回。查询匹配查询时我们输入的文本内容也会在ES进行分词处理将搜索内容分词后拿着分词去倒排索引中进行查询把匹配到的分词对应的映射document进行返回。
Standard分词器的规则
标点符号切分如果文本中含有标点符号那么会根据标点符号进行拆分比如apple,peach,food。那么拆分结果就是[apple 和 peach 和 food]这3个会根据逗号拆分词分割 即按照空格进行拆分 比如: my name is hbz, 拆分结果就是[my 和 name 和 is 和 hbz]这4个词拆成独立的分词小写转换即会将文本中的大小写全部转成小写 比如Hellow World, 则拆分结果就是[hellow 和 world], 首字母的HW都会转成小写的h, w停用词过滤 过滤掉无效的单词比如a, an, the这种连接词这些词本身没啥意义做分词的时候Standard分词器会将这些排除词干提取将单词还原成原始形态 比如 running–run swimming–swid, going–go, jumped–jump注意以上这5个特点是同时生效的即一段文本会按照这5中规则进行分词最终结果一定是符合这5中规则的。
如何查看ES分词存储效果
GET /索引名称/_analyze
GET /_index/_analyze
{analyzer: 分词器名称,field: 字段名称text: 待分析的文本
}案例
#字段是text类型
POST /my_index/_analyze
{field: title,text: This is some text to analyze
}#字段是text类型
POST /my_index/_analyze
{field: title,text: 今天学习了编程知识
}#字段是keyword类型keyword是精确匹配所以不会进行分词This is some text to analyze作为一个完整体
POST /my_index/_analyze
{field: tags,text: This is some text to analyze
}#字段是keyword类型(这是数组的keyword会将数组的每个元素进行分离出来但每个元素不会再进行分词了即结果就是This is, java, Spring Boot。大小写也不会转换因为根本没走分词器)
POST /my_index/_analyze
{field: tags,text: [This is,java,Spring Boot ]
}