拼音分词环境准备

找到和ElasticSearch版本相同的ik分词器和拼音分词器ElasticSearch的plugins目录下。

ElasticSearch 插件链接  http://dl.elasticsearch.cn/elasticsearch-plugins/

重启ElasticSearch。

 

拼音分词属性简介

属性 说明
keep_first_letter 启用此选项时,例如:刘德华> ldh,默认值:true
keep_separate_first_letter 启用该选项时,将保留第一个字母分开,例如:刘德华> l,d,h,默认:false,注意:查询结果也许是太模糊,由于长期过频
limit_first_letter_length 设置first_letter结果的最大长度,默认值:16
keep_full_pinyin 当启用该选项,例如:刘德华> [ liu,de,hua],默认值:true
keep_joined_full_pinyin 当启用此选项时,例如:刘德华> [ liudehua],默认值:false
keep_none_chinese 在结果中保留非中文字母或数字,默认值:true
keep_none_chinese_together 保持非中国信一起,默认值:true,如:DJ音乐家- > DJ,yin,yue,jia,当设置为false,例如:DJ音乐家- > D,J,yin,yue,jia,注意:keep_none_chinese必须先启动
keep_none_chinese_in_first_letter 第一个字母保持非中文字母,例如:刘德华AT2016- > ldhat2016,默认值:true
keep_none_chinese_in_joined_full_pinyin 保留非中文字母加入完整拼音,例如:刘德华2016- > liudehua2016,默认:false
none_chinese_pinyin_tokenize 打破非中国信成单独的拼音项,如果他们拼音,默认值:true,如:liudehuaalibaba13zhuanghan- > liu,de,hua,a,li,ba,ba,13,zhuang,han,注意:keep_none_chinese和keep_none_chinese_together应首先启用
keep_original 当启用此选项时,也会保留原始输入,默认值:false
lowercase 小写非中文字母,默认值:true
trim_whitespace 默认值:true
remove_duplicated_term 当启用此选项时,将删除重复项以保存索引,例如:de的> de,默认值:false,注意:位置相关查询可能受影响

接下来,我们一个一个来尝试,看看每一个属性具体代表什么意思。

创建一个索引,使用三个分词器。

{
  "index": {
    "number_of_shards": 5,
    "number_of_replicas": 0,
    "max_result_window": 100000000,
    "analysis": {
      "analyzer": {
"pinyin_analyzer_keyword": { "tokenizer": "keyword", "filter": "my_pinyin" }, "pinyin_analyzer_ik_smart": { "tokenizer": "ik_smart", "filter": "my_pinyin" }, "pinyin_analyzer_ik_max": { "tokenizer": "ik_max_word", "filter": "my_pinyin" } }, "filter": { "my_pinyin": { "type": "pinyin", "keep_first_letter": "false", "keep_separate_first_letter": "false", "keep_full_pinyin": "false", "keep_joined_full_pinyin": "false", "keep_none_chinese": "false", "keep_none_chinese_together": "false", "keep_none_chinese_in_first_letter": "false", "keep_none_chinese_in_joined_full_pinyin": "false", "none_chinese_pinyin_tokenize": "false", "keep_original": "false", "lowercase": "false", "trim_whitespace": "false", "remove_duplicated_term": "false" } } } } }

先看一下keyword、ik_smart、ik_max_word对“我们都是中国人。”的分词结果

{
"tokens": [
{
"token": "我们都是中国人。",
"start_offset": 0,
"end_offset": 8,
"type": "word",
"position": 0
}
]
}
keyword

相关文章:

  • 2021-10-16
  • 2021-12-09
  • 2021-11-18
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2021-04-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
  • 2021-08-13
  • 2022-12-23
  • 2021-08-01
  • 2021-07-31
相关资源
相似解决方案