分词器
简介
ES文档的数据拆分成一个个有完整含义的关键词,并将关键词与文档对应,这样就可以通过关键词查询文档
要想正确的分词,需要选择合适的分词器
默认分词器
简介
根据空格和标点符号对英文进行分词,会进行单词的大小写转换
默认分词器是英文分词器,对中文的分词是一字一词
基本使用
GET /_analyze
{
"text": "月木天上",
"analyzer": "standard"
}
IK分词器
简介
IK分词器提供了两种分词算法:
ik_smart:最少切分
ik_max_word:最细粒度划分
IK分词器词典
IK分词器根据词典进行分词,词典文件在IK分词器的config目录中:
main.dic:IK中内置的词典。记录了IK统计的所有中文单词
IKAnalyzer.cfg.xml:用于配置自定义词库
基本使用
GET /_analyze
{
"text":"月木天上",
"analyzer":"ik_smart"
}
GET /_analyze
{
"text":"月木天上",
"analyzer":"ik_max_word"
}
拼音分词器
简介
拼音分词器可以将中文分成对应的全拼,全拼首字母等文章来源:https://www.toymoban.com/news/detail-595772.html
基本使用
GET /_analyze
{
"text":"月木天上",
"analyzer":"pinyin"
}
自定义分词器
简介
真实开发中我们往往需要对一段内容既进行文字分词,又进行拼音分词,此时我们需要自定义ik+pinyin分词器文章来源地址https://www.toymoban.com/news/detail-595772.html
在创建索引时自定义分词器
PUT /索引名
{
"settings" : {
"analysis" : {
"analyzer" : {
"ik_pinyin" : { //自定义分词器名
"tokenizer":"ik_max_word", // 基本分词器
"filter":"pinyin_filter" // 配置分词器过滤
}
},
"filter" : { // 分词器过滤时配置另一个分词器,相当于同时使用两个分词器
"pinyin_filter" : {
"type" : "pinyin", // 另一个分词器
// 拼音分词器的配置
"keep_separate_first_letter" : false, // 是否分词每个字的首字母
"keep_full_pinyin" : true, // 是否分词全拼
"keep_original" : true, // 是否保留原始输入
"remove_duplicated_term" : true // 是否删除重复项
}
}
}
},
"mappings":{
"properties":{
"域名1":{
"type":域的类型,
"store":是否单独存储,
"index":是否创建索引,
"analyzer":分词器
},
"域名2":{
...
}
}
}
}
到了这里,关于elasticsearch分词器详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!