ELK 5.4.0 logstash 的ik分词 拼音分词 (Java) --- 肆

之前我们讲了logstash的配置:增量配置、全量配置、多输入输出配置等,今天我们讲解一下logstash的俩个重要的组件:ik分词器与ik拼音分词器。

为什么要有要装ik分词器是因为在一定意义上满足不了当前所需的业务。

ik分词器-举个栗子:
在未用ik分词器之前,我们搜索 中国 会将中国 拆分为 中国 去进行搜索,当我们搜索的内容里存在中华 或者 人民这样的包含这俩个词组的内容时 就不会去做任何展示 因为并未存在 中华人民 这样 一整个词组的内容,当我们安装了ik分词器后,神器的效果出现了,当我们搜索中国 时 你会发现 包含 中国 ,中华人民,中华,华人,人共*国 ,人民,人,民,共和国,共和,和,国国,国歌 的内容 都出来了,这里就是ik分词器的作用了。

拼音分词器-举个栗子:
在未使用拼音分词器之前,当我们想搜索一个搜索我们不知道汉字怎么写时的内容时:比如 <貔貅> 这是我们不会写貔貅这俩个字 我们则可以用 pixiu 或者 px来代替,当输入 pixiu 或 px 时 包含 貔貅的中文内容也就同时出来了。

首先如何安装:

将:

elasticsearch-analysis-ik-5.3.2.zip  --   A
elasticsearch-analysis-pinyin-5.4.0.zip  --  B

Copy到es的plugins文件夹内执行解压,解压到自己新建的俩个不同的文件夹中.

ik--A
pinyin--B

------------ ik的目录 ---------------------

ik| 
-commons-codec-1.9.jar 
-commons-logging-1.2.jar 
-elasticsearch-analysis-ik-5.3.2.jar 
-httpclient-4.5.2.jar 
-httpcore-4.4.4.jar 
-plugin-descriptor.properties 
-config| 
--IKAnalyzer.cfg.xml 
--... 
--custom| 
---...

---------- 拼音的目录 ----------------

pinyin|
-elasticsearch-analysis-pinyin-5.4.0.jar
-nlp-lang-1.7.jar
-plugin-descriptor.properties
---...

启动elasticsearch控制台打印出

loaded plugin [analysis-ik]
loaded plugin [analysis-pinyin]

就表示 ik 插件与 pinyin插件安装成功了
------------------ 解释 ------------
IK分词支持
两种分析器:Analyzer: ik_smart , ik_max_word ,
两种分词器:Tokenizer: ik_smart , ik_max_word,
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合。
ik_smart:会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。

Pinyin分词支持俩种分析器:
pinyin,就是普通的把汉字转换成拼音;
pinyin_first_letter,提取汉字的拼音首字母

那么插件是安装好了,如何给我们自己的索引建立ik分词 和pinyin分词呢,接下来附上代码:

首先我们创建索引:

PUT acai_pr_sku  --你自己的索引名
{
  "index": {
    "analysis": {
      "analyzer": {
        "ik_pinyin_analyzer": {  --含拼音与ik都有的分词
          "type": "custom",
          "tokenizer": "ik_max_word",  -- ik分词器
          "filter": [
            "my_pinyin",
            "word_delimiter"
          ]
        }
      },
      "filter": {
        "my_pinyin": {
          "type": "pinyin",
          "first_letter": "prefix",
          "padding_char": " "
        }
      }
    }
  }
}

然后给指定的字段增加属性 (拼音分词)

POST acai_pr_sku/acai_pr_sku_table/_mapping --自己创建的索引/自己创建的文档/配置
{
  "acai_pr_sku_table": {  -- 自己创建的文档
    "properties": {
      "pinyinkeyword": {  -- 所要拼音分词的字段
        "type": "keyword",
        "fields": {
          "pinyin": {
            "type": "text",
            "store": "no",
            "term_vector": "with_positions_offsets",
            "analyzer": "ik_pinyin_analyzer",  --将我们的配置项 引入
            "boost": 10
          }
        }
      }
    }
  }
}

然后给指定字段增加属性(分词)

POST acai_pr_sku/acai_pr_sku_table/_mapping  --自己创建的索引/自己创建的文档/配置
{
        "properties": {
            "keyword": {  --要分词的字段
                "type": "text",
                "analyzer": "ik_max_word",   --ik分析器
                "search_analyzer": "ik_max_word"  --ik分词器
            }
        }
    
}

到此处你所创建的索引里 keyword 这个字段具备了分词功能 pinyinkeyword具备了拼音分词功能
这里的 keyword pinyinkeyword 都是数据库里同步过来的字段。

我们这里的 keyword pinyinkeyword 是封装出来的字段 因业务不方便透露 但是这俩个字段里 一定是 你要搜索的关键字 或者 关键内容等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值